(快速参考)

create-command

用途

create-command 命令用于创建新的 Grails Gradle 任务和壳命令,该命令可以通过终端窗口中的 grails 命令运行。

示例

命令

grails create-command MyExample

创建名为 grails-app/commands/PACKAGE_PATH/MyExampleCommand.groovy 的类,例如

import grails.dev.commands.*

class MyExampleCommand implements ApplicationCommand {

  boolean handle(ExecutionContext ctx) {
      def dataSource = applicationContext.getBean(DataSource)
      return true
  }
}

可通过 runCommand 命令执行命令。

grails run-command my-example

或以 Gradle 任务执行

gradle runCommand -Pargs="myExample"

如果你要执行的命令定义在已声明为依赖项的插件中,则可以使用缩写形式执行该命令,如下所示

grails my-example

或以 Gradle 任务执行

gradle myExample

要使缩写形式起作用,该插件必须同时位于 build.gradle 中的构建类路径和运行时类路径中

buildscript {
  ...
  dependencies {
    classpath "org.grails.plugins:myplugin:0.1-SNAPSHOT"
  }
  ...
  dependencies {
    runtime "org.grails.plugins:myplugin:0.1-SNAPSHOT"
  }
}

描述

为了分离代码生成和构建层,在 Grails 3.x 中使用 create-script 创建的脚本无权访问正在运行的应用程序实例。

相反,Grails 3.x 提供了一个称为 ApplicationCommand 的新概念,该概念通过 Gradle 调用来执行任务,例如与运行时中的类进行交互。