maven分环境部署
程序员文章站
2022-03-26 21:39:18
...
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分环境部署的写法有很多种,有兴趣可以好好研究研究,希望可以帮助大家!
上一篇: Kafka实战——flume中消息输出到Kafka中
下一篇: Docker 安装kafka
推荐阅读
-
五步搞定Android开发环境部署非常详细的Android开发环境搭建教程
-
Linux部署Java-Web,mvn package出现COMPILATION ERROR :Failed to execute goal org.apache.maven.plugins:mave
-
Java 环境部署之Idea :解决Idea 中gradle编译 war 包编码不对
-
Jemeter学习环境部署。
-
vue项目环境部署,在指定目录下搭建vue项目
-
在Linux系统上部署Apache+Python+Django+MySQL环境
-
使用docker构建golang线上部署环境的步骤详解
-
node.js安装和配置环境以及部署项目的方法介绍(windows系统下)
-
在无网centos中简易部署python环境
-
maven tomcat plugin实现热部署