如何根据命令行参数将文件复制到我的 WAR 类路径中?

How do I copy a file into my WAR classpath based on a command line argument?

我正在使用 Gradle 2.7。我的构建中有以下文件

src/main/environment/dev/aws.properties
src/main/environment/qa/aws.properties
src/main/environment/prod/aws.properties

如何根据是否有人在执行构建时在命令行上指定环境(例如 gradle build -Penv=qa)?如果未指定 -Penv=xxx 标志,我希望将 src/main/environment/dev/aws.properties 文件复制到 class 路径中。

它将是:

war {
   def env = project.hasProperty('env') ? project.env : 'dev'
   from("src/main/environment/$env") {
      include('aws.properties')
      into('WEB-INF/classes')
   }
}

如果您在其他地方需要env,您可以在脚本的开头定义它。如果您已将 src/main/environment 添加到源集,则可以使用它代替路径。