SpringMVC+SpringBoot使用Maven進行多環境打包


有道雲筆記地址:

  https://note.youdao.com/ynoteshare1/index.html?id=b3f80dcf489aaf72bdcfbec2762726a4&type=note

SpringMVC:
 
1. 通過maven的filter實現動態打包
 
2. 在resources目錄下建一個filter文件夾用於存放多環境配置的properties文件,比如:
  name-dev.properties,name-test.properties,name-product.properties
 
3. 修改pom.xml
  <build>
    <!-- 通過profile決定env, 根據env來試用不同的過濾文件來處理resources中的properties文件 -->
    <!--獲得過濾使用的源文件,即有實際數據的地方-->
    <filters>
      <filter>src/main/resources/filter/name-${env}.properties</filter>
    </filters>
 
    <resources>
      <resource>
        <targetPath>${project.build.directory}/classes</targetPath>
        <directory>src/main/resources</directory>
        <!--是否使用過濾器-->
        <filtering>true</filtering>
        <includes>
          <include>**/*.xml</include>
          <include>**/*.properties</include>
        </includes>
      </resource>
    </resources>
  </build>
 
  <!-- 打包的不同profile -->
  <profiles>
    <!-- 開發 -->
    <profile>
      <id>dev</id>
      <properties>
        <env>dev</env>
      </properties>
      <!--默認激活-->
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <!-- 測試 -->
    <profile>
      <id>test</id>
      <properties>
        <env>test</env>
      </properties>
    </profile>
    <!-- 生產 -->
     <profile>
      <id>product</id>
      <properties>
        <env>product</env>
      </properties>
    </profile>
  </profiles>
 
4. 在IDEA中選擇需要的文件進行打包
 
SpringBoot:
 
1. 通過修改application.yml中的配置為動態值來實現
spring:
# 讀取maven的profile
profiles:
active: @active@
 
2. 配置文件結構如下:
 
3. 修改pom.xml
如果未使用自定義的<parent>,則只需要配置以下內容
 
<resource>
<directory>src/main/resources</directory>
<!--是否使用過濾器-->
<filtering>true</filtering>
</resource>
 
<!-- 打包的不同profile -->
<profiles>
<!-- 開發 -->
<profile>
<id>dev</id>
<properties>
<active>dev</active>
</properties>
<!--默認激活-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 測試 -->
<profile>
<id>test</id>
<properties>
<active>test</active>
</properties>
</profile>
<!-- 阿里雲測試 -->
<profile>
<id>test-aliyun</id>
<properties>
<active>test-aliyun</active>
</properties>
</profile>
<!-- 生產 -->
<profile>
<id>product</id>
<properties>
<active>prod</active>
</properties>
<!--默認激活-->
<!--<activation>-->
<!--<activeByDefault>true</activeByDefault>-->
<!--</activation>-->
</profile>
</profiles>
 
4. 如果使用自定義的<parent>,額外添加如下配置
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.2.RELEASE</version>
<configuration>
<!-- 解決引用自定義parent后,找不到主清單的問題 -->
<mainClass>${start-class}</mainClass>
<layout>ZIP</layout>
<outputDirectory>${project.basedir}/output</outputDirectory>
</configuration>
<!-- 解決引用自定義parent后,找不到主清單的問題 -->
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
 
5. 在IDEA中選擇需要的文件進行打包
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM