在Maven Pom中指定备用Spring application.properties

时间:2015-03-12 22:36:44

标签: spring maven

如何在Maven pom文件中指定备用application.properties?我有2个不同的Maven配置文件,并希望根据配置文件使用不同的属性文件。

1 个答案:

答案 0 :(得分:5)

如果您使用的是Spring引导,可以通过以下方式轻松实现。

  1. 在maven中创建两个配置文件,并在每个配置文件中设置一个属性,其中包含您要执行的Spring配置文件的名称。

    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <!-- Default spring profile to use -->
            <spring.profiles.active>dev</spring.profiles.active>
            <!-- Default environment -->
            <environment>develop</environment>
        </properties>
    </profile>
    
  2. 在您的application.properties中,添加以下属性:

  3. spring.profiles.active = $ {spring.profiles.active}

    1. 使用此模式application- profile .properties为每个配置文件创建application.property。例如:
    2. application-dev.properties
      application-prod.properties

      1. 请务必在资源插件中激活过滤:
      2. 
              ...
              <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
              </resource>
             ...
        

        另一种方法是在maven执行期间创建一个名为 activeprofile.properties 的文件。 Spring启动会查找此文件以加载活动配置文件。您可以按如下方式创建此文件:

           <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <executions>
                        <execution>
                            <phase>prepare-package</phase>
                            <configuration>
                                <target>
                                    <echo message="spring.profiles.active=${spring.profiles.active}" file="target/classes/config/activeprofile.properties" />
                                </target>
                            </configuration>
                            <goals>
                                <goal>run</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                    </configuration>
                </plugin>