maven 多套环境 配置(开发、测试、预发、正式)
2016-02-29 16:53
274 查看
接上一节继续,项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local)、(开发小组内自测的)开发环境(dev)、(提供给测试团队的)测试环境(test)、预发布环境(pre)、正式生产环境(prod),每种环境都有各自的配置参数,比如:数据库连接、远程调用的ws地址等等。如果每个环境build前手动修改这些参数,显然太不fashion.
maven早就考虑到了这些问题,看下面的pom片段:
如果每次发布生产前,都要手动修改,未免太原始,可以通过maven的profile来解决
先把配置文件改成
在maven里,如果一个依赖项的scope是provided,表示由容器提供,打包时将不会打包进最终的package里,所以这样配置后,生产环境打包时,依赖项的scope全变成了provided,即不打包进war文件,而本机环境下,因为scope是compile,所以会打包到war里
maven早就考虑到了这些问题,看下面的pom片段:
1 <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 2 <property name="jndiName" value="appDS" /> 3 </bean>
如果每次发布生产前,都要手动修改,未免太原始,可以通过maven的profile来解决
先把配置文件改成
1 <profile> 2 <!-- 本机环境 --> 3 <id>local</id> 4 <properties> 5 <jar.scope>compile</jar.scope> 6 ... 7 </properties> 8 <!-- 默认激活本环境 --> 9 <activation> 10 <activeByDefault>true</activeByDefault> 11 </activation> 12 </profile> 13 <profile> 14 <!-- 生产环境 --> 15 <id>pro</id> 16 <properties> 17 <jar.scope>provided</jar.scope> 18 ... 19 </properties> 20 </profile>
在maven里,如果一个依赖项的scope是provided,表示由容器提供,打包时将不会打包进最终的package里,所以这样配置后,生产环境打包时,依赖项的scope全变成了provided,即不打包进war文件,而本机环境下,因为scope是compile,所以会打包到war里
相关文章推荐
- IMP-00003: ORACLE error 3113 encountered ORA-03113: end-of-file on communication channel
- 数字密码发生器
- Nginx配置文件详细说明
- poj1703--Find them, Catch them(并查集应用)
- WHU1124 Football Match
- 软件工程概论初学
- 老李分享:JVM调优
- Android Studio学习总结
- 设计模式(8)--模板模式
- ES6 Class
- 关于androidannotations(注解)的理解和使用(文档篇)
- cocos2d-js cocos run -p android 报错:文件名、目录名卷标语法不正确
- 二叉树学习之二叉树的构建及操作
- 一个IOS弹出窗口时的小技巧
- android BaseAdapter 自定义适配器 BaseAdapter基类抽取 一
- 你百度不到的android坑 imageview.setimageDrawable和setbackgroundDrawable
- 迷茫了
- JAVA Stack
- 冒泡排序实例
- Jquery-multiselect 多选下拉框