将额外的配置属性添加到grail目标

时间:2013-07-30 17:04:24

标签: grails jenkins

在我的config.groovy中,我的开发环境是......

development {
    ... 
    grails.resources.mappers.yuicssminify.disable = true
    grails.resources.mappers.yuijsminify.disable = true
    grails.resources.mappers.hashandcache.disable = true
    grails.resources.mappers.zip.disable = true

}

当我从jenkins运行grails dev war时,在某些情况下我需要额外的属性。这个属性是:

grails.plugin.jbossas.removeLog4jJars = false

我无法改变Config.groovy中的开发环境。我有什么方法可以通过这个额外的财产吗?

1 个答案:

答案 0 :(得分:1)

我认为最干净的解决方案将是你的詹金斯的新环境:

jenkins {
    grails.plugin.jbossas.removeLog4jJars = false    
}

如果这不是一个选项(如评论中所述),也可以将此配置值移动到系统特定的属性文件中:

grails.config.locations = ["file:/home/user/my-config.properties"]

在jenkins系统的my-config.properties内你可以做到:

grails.plugin.jbossas.removeLog4jJars = false

其他系统的my-config.properties个文件保持空白(我认为它们甚至不需要存在)。

如果这也不是一个选项,你可以做这样的事情(不太好):

development {
  if (MyUtils.isJenkins()) {
    grails.plugin.jbossas.removeLog4jJars = false
  }
  ...
}

MyUtils.isJenkins()内,您必须确定您的应用程序在哪个系统上运行。例如:

class MyUtils {

  public static boolean isJenkins() {
    def env = System.getenv()
    return env[IS_JENKINS]        
  }
}

此示例检查系统变量IS_JENKINS是否已设置(您可以添加其他方法来确定您正在运行的系统)