gradle - 如何根据配置文件将文件复制到WAR中?

标签 gradle properties-file profiles

我在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进行设置?

最佳答案

有很多解决问题的方法。在构建sourceSets文件时,您可以配置includeexcludewar特定资源。您也可以使用一个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

关于gradle - 如何根据配置文件将文件复制到WAR中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33373744/

相关文章:

react-native - react 原生构建失败 react-native-fbsdk

scala - 我应该如何解决两个不同用户的登录身份验证问题?

reactjs - 如何读取 ReactJs 应用程序中的 Spring Boot application.properties?

gradle - gradle资源包属性EscapeUnicode:不起作用

java - Autowiring List<List<String>> 出具有未知键长度的属性文件

android - 从几个 SharedPreferences 文件中获取 String 并创建 listView

authentication - Maven 服务器身份验证作为配置文件属性

docker - `npm install` 与 `gradle` 的等价物是什么?

gradle - Windows 上 build.gradle 中的绝对路径

android - 如何使用 gradle 对库进行依赖注入(inject)?