我在Mac Yosemite上使用Gradle 2.7。我有以下文件:
src/main/environment/dev/context.xml
src/main/environment/qa/context.xml
src/main/environment/prod/context.xml
我想要的是如果我运行构建gradle -Pqa build
,上面相应的context.xml
文件将被复制到我的WAR
(进入WEB-INF / classes目录就可以了)。如何使用gradle进行设置?
答案 0 :(得分:1)
有许多方法可以解决问题。在构建sourceSets
文件时,您可以配置include
或exclude
或war
个特定资源。您还可以拥有单个context.xml
并使用ReplaceTokens
过滤器执行资源过滤。
我选择了sourceSets
:
apply plugin: 'war'
ext.env = project.hasProperty('env') ? project.env : 'dev'
sourceSets {
main {
resources {
srcDir "src/main/environment/$env"
}
}
}
诀窍是只包括/处理传递的env
。如果未通过env
,则会选择dev
进行进一步处理。看看demo。
答案 1 :(得分:0)
您必须使用环境变量来执行此操作。在文件中具有系统属性。在build.gradle中读取它们并基于它将context.xml包含在war中。