Maven为本地、测试、生产等不同的环境打包
2016-12-02 11:38
621 查看
大家在项目开发中经常碰到这样的情况,每个项目都会有多套运行环境,比如开发环境、测试环境、生产环境等,不同的环境对应的配置也不尽相同,比如说数据库连接、文件路径、WebServices address等。
不同环境下需要构建不同的包,那么我们可以通过以下两种方式来解决:
pom_dev.xml (default)
pom_qa.xml
pom_prod.xml我们打包的时候,选择不同的pom来打不同的包
Build war for qa:
mvn clean install -f pom_qa.xmlBuild war for product:
mvn clean install -f pom_prod.xml但是多个pom.xml之间重复配置很多,不容易维护,极不推荐这种方式。
打包的时候使用-P <profile>指定需要打哪个环境的包。
比如打开发包
打包成功后,如下图
不同环境下需要构建不同的包,那么我们可以通过以下两种方式来解决:
一、定义多个pom,使用-f <pom_file>指定
比如定义如下pom:pom_dev.xml (default)
pom_qa.xml
pom_prod.xml我们打包的时候,选择不同的pom来打不同的包
Build war for qa:
mvn clean install -f pom_qa.xmlBuild war for product:
mvn clean install -f pom_prod.xml但是多个pom.xml之间重复配置很多,不容易维护,极不推荐这种方式。
二、pom定义多个profile进行配置
目前我们项目在配置文件夹中建立了三个不同环境的配置文件夹,目录结构如下:project/ |-- src |-- main | |-- java | |-- env | | |-- dev | | | |-- application.properties | | | |-- database.properties | | | |-- sap-config.propertes | | |-- qa | | | |-- application.properties | | | |-- database.properties | | | |-- sap-config.propertes | | |-- prod | | | |-- application.properties | | | |-- database.properties | | | |-- sap-config.propertes | |-- resources | |-- webapp |-- testpom.xml里定义三个环境的profile,其中默认环境为dev:
<profiles> <!-- 开发环境 propertites 读取pom中的变量 --> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <package.env>dev</package.env> </properties> </profile> <profile> <id>qa</id> <properties> <package.env>qa</package.env> </properties> </profile> <profile> <id>prod</id> <properties> <package.env>prod</package.env> </properties> </profile> </profiles>build定义如下:
<build> <finalName>pos</finalName> <resources> <resource> <directory>src/main/env/${package.env}</directory> <targetPath>properties</targetPath> </resource> <resource> <directory>src/main/resources</directory> <excludes> <exclude>properties/dev/*.*</exclude> <exclude>properties/qa/*.*</exclude> <exclude>properties/prod/*.*</exclude> </excludes> </resource> </resources> <plugins> <!-- 更改maven默认的打包目录 --> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <warSourceDirectory>webapp</warSourceDirectory> <webXml>webapp\WEB-INF\web.xml</webXml> </configuration> </plugin> </plugins> </build>其中${package.env}就是profile里定义的properties,打包的时候使用-P <profile>指定需要打哪个环境的包。
打包的时候使用-P <profile>指定需要打哪个环境的包。
比如打开发包
打包成功后,如下图
相关文章推荐
- maven如何为不同的环境打包-开发、测试、生产环境
- Maven 如何为不同的环境打包 —— 开发、测试和生产环境
- Maven 如何为不同的环境打包 —— 开发、测试和生产环境
- Maven 如何为不同的环境打包 —— 开发、测试和生产环境
- Maven 如何为不同的环境打包 —— 开发、测试和生产环境
- maven 为测试环境、生产环境等不同环境打包
- Maven 生产环境 测试环境 开发环境 打包配置
- maven 开发环境 、测试环境、生产环境打包
- Maven 生产环境 测试环境 开发环境 打包配置
- Maven 利用Profile属性配置,生成不同环境(生产、测试)下的发布包
- Maven 生产环境 测试环境 开发环境 打包配置
- maven 开发环境 、测试环境、生产环境打包
- maven 本地、测试、生产打包
- maven 开发环境 、测试环境、生产环境打包
- 使用Maven的profile对生产测试环境打包
- maven: 开发、测试和生产环境使用不同的配置文件例子
- 使用Maven自动打包配置文件生成开发环境,测试环境,生产环境
- Maven 如何为不同的环境打包 —— 开发、测试和产品环境
- Maven对不同的测试环境用不同的参数进行打包
- Maven 如何为不同的环境打包 —— 开发、测试和产品环境