基于环境的Grails war文件名

时间:2011-03-15 03:32:47

标签: grails

我想在自动构建的每个战争中附加env名称(grails [dev | test | prod] war

我尝试在BuildConfig.groovy中执行以下操作,但没有任何改变:

switch (grails.util.GrailsUtil.environment) {

    case "development":
        grails.project.war.file = "target/${appName}-dev-${appVersion}" 
    case "test":
        grails.project.war.file = "target/${appName}-test-${appVersion}"
    case "production":
        grails.project.war.file = "target/${appName}-prod-${appVersion}"
}

有什么想法?当然我可以在命令行上手动更改它,但我想如果可能的话我会做一点清洁......

2 个答案:

答案 0 :(得分:12)

GrailsUtil.environment已弃用 - 请改用grails.util.Environment.current.name

由于时间问题,这是失败的 - GrailsUtil.environment尚未设置,因此没有一个案例匹配。即使他们因为你没有休息陈述而遇到问题 - 每个案例你都需要一个。

这有效(虽然它使用全名,例如'生产'或'开发'):

grails.project.war.file = "target/${appName}-${grails.util.Environment.current.name}-${appVersion}.war"

答案 1 :(得分:1)

您也可以这样做:

grails.project.war.file = "target/${appName}${grails.util.Environment.current.name == 'development' ? '-dev' : ''}.war"