Maven根據不同環境打包不同配置文件

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/woshimike/article/details/72843794

項目開發的時候經常會遇到這樣的問題:開發環境,測試環境,生產環境的配置文件(數據庫、reids、mq、mongo等)不同,打包時經常要手動更改配置文件,改來改去的經常會出錯。

現在我們可以用maven插件去實現(pom.xml文件代碼):


 <build>
    <plugins>
      <!-- 資源插件 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>validate</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>src/main/resources</outputDirectory>
              <resources>
                <resource>
                  <directory>src/main/resources/conf/${configPath}</directory>
                  <filtering>true</filtering>
                  <includes>
                    <include>*.properties</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>dev</id>
      <properties>
        <configPath>dev</configPath>
      </properties>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>prod</id>
      <properties>
        <configPath>prod</configPath>
      </properties>
    </profile>
    <profile>
      <id>test</id>
      <properties>
        <configPath>test</configPath>
      </properties>
    </profile>
  </profiles>

    這樣我們在進行打包的時候可以使用命令:


mvn package  -P prod -Dmaven.test.skip=true

或者             mvn package  -P test -Dmaven.test.skip=true  這樣就會根據  prod和test   去不同的目錄


src/main/resources/conf/dev   或者是 
src/main/resources/conf/prod 下的配置文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章