Maven为本地、测试、生产等不同的环境打包
来源:互联网 发布:手机小夜灯软件 编辑:程序博客网 时间:2024/05/17 08:46
大家在项目开发中经常碰到这样的情况,每个项目都会有多套运行环境,比如开发环境、测试环境、生产环境等,不同的环境对应的配置也不尽相同,比如说数据库连接、文件路径、WebServices address等。
不同环境下需要构建不同的包,那么我们可以通过以下两种方式来解决:
打包的时候使用-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>指定需要打哪个环境的包。
比如打开发包
打包成功后,如下图
1 0
- Maven为本地、测试、生产等不同的环境打包
- maven 为测试环境、生产环境等不同环境打包
- Maven 如何为不同的环境打包 —— 开发、测试和生产环境
- maven如何为不同的环境打包-开发、测试、生产环境
- Maven 如何为不同的环境打包 —— 开发、测试和生产环境
- Maven 如何为不同的环境打包 —— 开发、测试和生产环境
- maven根据不同的生产环境打包
- maven 本地、测试、生产打包
- 使用Maven的profile对生产测试环境打包
- Maven 如何为不同的环境打包 —— 开发、测试和产品环境
- Maven 如何为不同的环境打包 —— 开发、测试和产品环境
- Maven 生产环境 测试环境 开发环境 打包配置
- maven 开发环境 、测试环境、生产环境打包
- maven 开发环境 、测试环境、生产环境打包
- maven 开发环境 、测试环境、生产环境打包
- Maven 生产环境 测试环境 开发环境 打包配置
- maven为不同环境打包(hibernate)
- Maven 使用profile以占位符的形式指定开发、生产等不同的环境
- 寻找自幂数
- 查找图元方法中遇见的MapX的Bug
- mybatis-generator扩展教程系列 -- 自定义配置参数修改DAO,Mapper文件后缀
- leetcode-46. Permutations
- Android爬坑-iconfont动态加载
- Maven为本地、测试、生产等不同的环境打包
- codeforces #382 题解 735ABCD
- hdoj 1848 Fibonacci again and again(组合博弈, sg函数)
- 个人记录-LeetCode 40. Combination Sum II
- 网页本地登陆注册(永久保存)
- NEFU 20 穿过街道
- MongoDB线上实践指南-基础篇之支撑百亿级访问(二)
- 数组
- 数组中出现次数超过一半的数字