欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

maven分环境部署

程序员文章站 2022-03-26 21:39:18
...

maven实现分环境打包部署

由于开发环境、测试环境和生产环境配置不同的情况,可能在程序猿打包时总是需要修改配置文件或代码,针对这种情况,maven分环境部署就变得十分有必要了。针对maven项目,要使用Jenkins分环境部署,maven项目配置流程如下:

  • 第一步:将环境不同的配置抽取变量放入配置文件
    在src/java/resource中增加环境配置文件夹,例如:dev、test、pro如图:
    maven分环境部署

  • 第二步:修改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>

配置具体意义如下:
maven分环境部署
(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分环境部署

最后,使用maven命令就可以进行分环境打包了,命令:
package -P pro 打一个生产环境的包
或者
package -P dev 打开发环境的包

这种方式的优点在于,打出来的包是不体现分环境部署的其他文件和文件夹的,打出的包目录中不包含dev、test、pro文件夹,如下:
maven分环境部署

maven分环境部署的写法有很多种,有兴趣可以好好研究研究,希望可以帮助大家!