我正在使用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
功能。但是我遇到了不知道自动运行它的问题。