Java 替换其他属性文件中application.properties的值
我的Spring boot应用程序中有以下文件应用程序属性文件。 所有属性文件都位于src/main/resources文件夹中 Spring启动版本是2.1.6 application.properties application-dev.properties 应用程序-tst.properties application.properties app.name={app.name}app.common=common valJava 替换其他属性文件中application.properties的值,java,maven,spring-boot,Java,Maven,Spring Boot,我的Spring boot应用程序中有以下文件应用程序属性文件。 所有属性文件都位于src/main/resources文件夹中 Spring启动版本是2.1.6 application.properties application-dev.properties 应用程序-tst.properties application.properties app.name={app.name}app.common=common val application-dev.properties app.nam
application-dev.properties app.name=我的开发应用程序
application-tst.properties app.name=我的tst应用程序 Dev和tst是我创建的maven概要文件
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>dev</env>
</properties>
</profile>
<profile>
<id>tst</id>
<properties>
<env>tst</env>
</properties>
</profile>
</profiles>
发展
真的
发展
tst
tst
如果我使用dev概要文件构建项目,我应该在application.properties中获得以下内容
1) mvn-Pdev清洁安装
application.properties app.name=My dev app.common=common val
2) mvn-Ptst清洁安装
application.properties app.name=我的tst应用程序app.common=公共值
如何实现这一点?您可以使用环境变量像这样设置活动配置文件
mvn安装-Dspring.profiles.active=dev
或
mvn安装-Dspring.profiles.active=tst
这可能不是推荐的方法,但您可以使用org.apache.maven.plugins.maven资源插件,如下所示
pom.xml
application-dev.properties
应用程序-tst.properties
然后,
mvn-Pdev-clean安装
或mvn-Ptst-clean安装
我想使用mvn-Pdev-clean构建install@OracleMonkey请参阅这篇文章,它解释了如何将spring启动运行时概要文件与maven构建时概要文件链接起来。maven概要文件不是spring概要文件。你把它们混在一起了。另外,您不应该为不同的环境构建单独的工件,而是构建一个工件并将其传播到不同的环境。使用Spring配置文件加载正确的配置文件。好的,谢谢。那么您能告诉我如何使用单个工件吗?只需像通常构建应用程序一样构建它,您可以使用-Dspring.Profiles.active
指定在运行应用程序时哪些配置文件处于活动状态。好的,您的意思是我应该只维护application-dev.properties和application-uat.properties如M.Deinum之前所说,推荐的方法是什么,您可以使用-Dspring.profiles.active
来指定运行应用程序时哪些配置文件处于活动状态。好的,您的意思是我应该只维护application-dev.properties和application-tst.properties我们在application.properties
中设置的属性不随环境变化。我们在应用程序-{profile}.properties
中设置属性,这些属性随环境的变化而变化。(例如数据库设置、API密钥)
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<filters>
<filter>src/main/resources/application-${env}.properties</filter>
</filters>
</build>
app.name=@app.name@
app.common=Common val
app.name=My dev app
app.name=My tst app