Java SpringBoot maven使用特定的application.properties构建war
我有一个Spring Boot应用程序,它有三个Java SpringBoot maven使用特定的application.properties构建war,java,spring,maven,spring-boot,Java,Spring,Maven,Spring Boot,我有一个Spring Boot应用程序,它有三个应用程序。属性文件: 应用程序属性 应用程序-qa.properties application-prod.properties 我想使用maven构建一个war,具体取决于应用程序部署的环境,即dev、qa或prod 我怎样才能做到这一点。我对Spring Boot非常陌生。设置Spring\u PROFILES\u ACTIVE环境变量将激活所需的配置文件。例如,要激活qa配置文件,请将SPRING\u PROFILES\u ACTIVE环境变
应用程序。属性文件:
应用程序属性
应用程序-qa.properties
application-prod.properties
我想使用maven构建一个war,具体取决于应用程序部署的环境,即dev
、qa
或prod
我怎样才能做到这一点。我对Spring Boot非常陌生。设置Spring\u PROFILES\u ACTIVE
环境变量将激活所需的配置文件。例如,要激活qa
配置文件,请将SPRING\u PROFILES\u ACTIVE
环境变量设置为qa
。阅读Spring引导文档中有关配置文件特定属性的更多信息。1。Aproach
在Linux环境中
export SPRING_PROFILES_ACTIVE=qa
您可以使用以下命令检查它是否在操作系统上设置:
$ env
之后,您可以运行:
./gradlew bootRun
因此,您在启动时可以看到这一行:
2018-05-17 17:33:21.722 INFO 8245 --- [main]
b.j.t.d.InteropDocumentosApplication : The following profiles are active: qa
2.Aproach
通过gradle构建:
在应用程序属性上
spring.profiles.active=@activeProfile@
在build.gradle上
import org.apache.tools.ant.filters.ReplaceTokens
processResources {
filter ReplaceTokens, tokens: [
activeProfile: project.property('activeProfile')
]
}
您可以使用名为activeProfile的属性。因此,在运行构建时,必须提供qa值:
./gradlew build -PactiveProfile=qa
我有一台windows机器,我确实将环境变量SPRING_PROFILES_ACTIVE设置为qa。但是当我在tomcat中运行应用程序时,它仍然使用application.properties文件中的值?不,我右键单击了我的计算机->属性->高级系统属性->环境变量。我需要使用set命令设置它吗?我也尝试使用命令行设置它:setx SPRING_PROFILES_ACTIVE qa。它仍然从application.properties加载值:(?将application.properties
中的spring.profiles.default
设置为您想要的配置文件,然后构建项目您不想为每个环境构建war,因为您想升级测试的二进制文件。您不想仅仅因为需要移动到不同的环境而进行重建。如果这样做,您基本上会e重新测试,因为它是一个新的二进制文件。。。