【问题标题】:How do I copy a file into my WAR classpath based on a command line argument?如何根据命令行参数将文件复制到我的 WAR 类路径中?
【发布时间】:2016-02-17 22:34:15
【问题描述】:

我使用的是 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)将文件复制到我组装的 WAR 类路径中?如果未指定 -Penv=xxx 标志,我希望将 src/main/environment/dev/aws.properties 文件复制到类路径中。

【问题讨论】:

    标签: gradle build classpath environment


    【解决方案1】:

    会是:

    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 添加到源集,则可以使用它来代替路径。

    【讨论】:

    • 这段代码将 aws.properties 文件复制到 WAR 的根目录中,以及 WEB-INF 和 META-INF 目录,但它没有在类路径中被拾取。该文件是否不需要位于 WEB-INF/classes 或 WEB-INF/lib 目录中才能位于类路径上?
    • 你需要配置into
    猜你喜欢
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 2012-09-24
    • 2019-02-15
    • 1970-01-01
    • 2016-09-17
    相关资源
    最近更新 更多