maven分環境部署

maven實現分環境打包部署

由於開發環境、測試環境和生產環境配置不同的情況,可能在程序猿打包時總是需要修改配置文件或代碼,針對這種情況,maven分環境部署就變得十分有必要了。針對maven項目,要使用Jenkins分環境部署,maven項目配置流程如下:

  • 第一步:將環境不同的配置抽取變量放入配置文件
    在src/java/resource中增加環境配置文件夾,例如:dev、test、pro如圖:
    這裏寫圖片描述

  • 第二步:修改pom.xml
    (1)將要分別部署的文件夾名稱進行id配置,如下:

<profiles>
         <profile>
             <id>dev</id>
             <properties>
                 <package.environment>dev</package.environment>
             </properties>
             <activation>
                 <activeByDefault>true</activeByDefault>
             </activation>
         </profile>
         <profile>
             <id>pro</id>
             <properties>
                 <package.environment>pro</package.environment>
             </properties>
         </profile>
         <profile>
             <id>test</id>
             <properties>
                 <package.environment>test</package.environment>
             </properties>
        </profile>
 </profiles>

(2)配置maven插件:

 <!-- war打包插件, 設定war包名稱不帶版本號 -->
 <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-war-plugin</artifactId>
     <version>2.3</version>
     <configuration>
         <webResources>
             <!--動態指定文件-->
             <resource>
                 <directory>src/main/resources/${package.environment}</directory>
                 <targetPath>WEB-INF/classes</targetPath>
                 <filtering>true</filtering>
             </resource>
      </webResources>
      </configuration>
</plugin>

配置具體意義如下:
這裏寫圖片描述
(3)然後是關鍵配置,在build標籤下進行如下配置首先配置打包時過濾掉所有的環境配置文件夾,然後配置通過命令傳輸過來的要使用的文件夾,具體如下:

 <resources>
     <resource>
         <directory>src/main/resources</directory>
         <filtering>true</filtering>
         <excludes>
            <exclude>test/*</exclude>
            <exclude>pro/*</exclude>
            <exclude>dev/*</exclude>
         </excludes>
     </resource>
     <resource>
         <directory>src/main/java</directory>
         <filtering>true</filtering>
         <includes>
             <include>**/*.xml</include>
         </includes>
     </resource>
</resources>

配置意思具體如下:
這裏寫圖片描述

最後,使用maven命令就可以進行分環境打包了,命令:
package -P pro 打一個生產環境的包
或者
package -P dev 打開發環境的包

這種方式的優點在於,打出來的包是不體現分環境部署的其他文件和文件夾的,打出的包目錄中不包含dev、test、pro文件夾,如下:
這裏寫圖片描述

maven分環境部署的寫法有很多種,有興趣可以好好研究研究,希望可以幫助大家!

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