java - Gradle基于环境属性构建War文件

标签 java spring spring-boot gradle

我有一个Spring Boot Gradle项目,该项目具有基于不同环境的多个属性,例如application-dev.propertiesapplication-prod.properties等。

我想做的是,根据环境arg建立一个只有一个application.properties文件的war文件。

我有以下使用processResources的代码

processResources {
    def profile = (project.hasProperty('profile') ? project.profile : 'prod').toLowerCase()
    include "**/application-${profile}.properties"
    rename {
        'application.properties'
    }
}

我唯一遇到的问题是,这不包括资源文件夹中的所有静态文件。例如,在我的资源文件夹中,我有静态文件夹,模板文件夹和一些其他静态文件。任何帮助将非常感激。

最佳答案

我的方法是使用doFirst替换环境的属性。

像这样

war {
doFirst {
    def propertyFile = file("build/resources/main/env_${branch}.properties")
    if(propertyFile.exists()){
        delete 'build/resources/main/env.properties'

        propertyFile.renameTo(file("build/resources/main/env.properties"))
    }
}}

关于java - Gradle基于环境属性构建War文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47101269/

相关文章:

java - 如何验证 REST 服务中的通用 bean?

Java泛型将具体类列表的 future 转换为接口(interface)列表的 future ?

java - 带有 @Value 注释和单个方法的字段。我应该让它们都静态吗?为什么/为什么不呢?

java - 如何使用 Apache Camel Netty4 在异步模式下通过已建立的 TCP 连接发回响应?

java - 我们可以动态地将值传递给 Spring bean 定义的参数吗?

java - Spring Batch 的 ItemWriter 是单例类吗?

java - java spring boot/spring security(HttpSecurity)中的 session 到期时如何自动注销

java - 连接和连接请求超时

java ssl handshake_failure 问题

java - PDFbox库页面迭代