将命令添加到Grails构建过程

时间:2015-04-01 15:11:59

标签: grails grails-plugin

我正在使用grails-cdn-asset-pipline plugin。我已经完成了GitHub上的安装和配置步骤,并且我到达了usage section,上面写着

  

将此命令添加到构建过程中(通常在战争生成和部署之前)。

// If all the settings are defined in your Config.groovy
grails asset-cdn-push
// Or
grails asset-cdn-push --provider=S3 --directory=my-bucket --gzip=true --storage-path=some-prefix --expires=365 --region=eu-west-1 --access-key=$MY_S3_ACCESS_KEY --secret-key=$MY_S3_SECRET_KEY

我的项目在哪里放这个命令?

我可以在项目的上下文中做些什么,或者我是否需要在另一个构建过程中将其分开并在像Jenkins这样的环境中运行?

_Events.groovy中,我尝试调用eventCreateWarStart中的脚本,但我没有运气。 (代码取自this question

eventCreateWarStart = { warName, stagingDir ->
    def pluginManager = PluginManagerHolder.pluginManager
    def plugin = pluginManager.getGrailsPlugin("cdn-asset-pipline")
    def pluginDir = plugin.descriptor.file.parentFile

    Map<String, String> env = System.getenv()
    final processBuilder = new ProcessBuilder()
    processBuilder.directory(new File("${cdnAssetPipelinePluginDir}/scripts"))
    processBuilder.command([env['GRAILS_HOME']+"/bin/grails","cdn-asset-push"])
    println processBuilder.directory()
    Process proc = processBuilder.start()
    proc.consumeProcessOutput(out, err)

    proc.waitFor()
}

This link解释了合并到Grails 1.3.6中的run-script功能。但是我遇到了不知道自动运行它的问题。

0 个答案:

没有答案