Grails:如何从BuildConfig.groovy知道正在执行哪个命令

时间:2015-04-09 14:37:33

标签: grails build command

是否可以从BuildConfig.groovy文件中知道正在执行哪个命令,以便根据命令更改构建配置?例如,如果'schema-export'那么不包括'Foo'库等等? 我正在使用Eclipse,我正在从eclipse运行rails cmd。

编辑:在尝试Shashank解决方案后,我添加了有关我使用Eclipse的详细信息。

通过打印'sun.java.command'属性,我认为我的Eclipse安装(Indigo Service Release 2 + Grails IDE 3.5插件)正在重写启动的命令

org.codehaus.groovy.grails.cli.support.GrailsStarter --main org.grails.ide.eclipse.longrunning.process.GrailsProcess --conf Y:\grails-2.4.4\/conf/groovy-starter.conf --classpath /C:/Program Files/eclipse/configuration/org.eclipse.osgi/bundles/1764/1/.cp/;/C:/Program Files/eclipse/configuration/org.eclipse.osgi/bundles/1766/1/.cp/ --is14

1 个答案:

答案 0 :(得分:0)

我看了它,是的,这绝对是可能的。

在BuildConfig的任何地方,你可以这样写:

String command = System.getProperty("sun.java.command")

if (command.contains("run-app")) {
    compile (":hibernate:3.6.10.18")  // example to install hibernate while running the app
} else if (command.contains("test-app")) {
    compile (":hibernate:3.6.10.14")  // some other version for test cases
}

或者你的例子:

compile (":some-plugin:2.3") {
    if (command.contains("export-schema")) {
        excludes "foo"
    }
}

该属性将为您提供如下输出:

org.codehaus.groovy.grails.cli.support.GrailsStarter --main org.codehaus.groovy.grails.cli.GrailsScriptRunner --conf /home/user/.gvm/grails/current/conf/groovy-starter.conf --classpath   --offline run-app