替换其他属性文件中的application.properties值

时间:2019-07-01 09:02:01

标签: java maven spring-boot

我的Spring Boot应用程序中有以下文件应用程序属性文件。 所有属性文件都位于src / main / resources文件夹中 春季启动版本是2.1.6

  

application.properties application-dev.properties   application-tst.properties

     

application.properties app.name = {app.name} app.common =通用值
  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>

如果我使用开发人员配置文件构建项目,则应在我的application.properties中获得以下内容

  

1)mvn -Pdev全新安装

     

application.properties app.name =我的开发应用程序app.common =通用值

     

2)mvn -Ptst全新安装

     

application.properties app.name =我的第一个应用程序app.common =通用值

我该如何实现?

2 个答案:

答案 0 :(得分:1)

您可以使用环境变量像这样设置活动配置文件

mvn install -Dspring.profiles.active=dev

mvn install -Dspring.profiles.active=tst

答案 1 :(得分:0)

这可能不是推荐的方法,但是您可以如下使用org.apache.maven.plugins.maven-resources-plugin

pom.xml

    <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>

application.properties

app.name=@app.name@
app.common=Common val

application-dev.properties

app.name=My dev app

application-tst.properties

app.name=My tst app

然后是mvn -Pdev clean installmvn -Ptst clean install