您的位置:首页 > 其它

maven 多套环境 配置(开发、测试、预发、正式)

2016-02-29 16:53 274 查看
上一节继续,项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local)、(开发小组内自测的)开发环境(dev)、(提供给测试团队的)测试环境(test)、预发布环境(pre)、正式生产环境(prod),每种环境都有各自的配置参数,比如:数据库连接、远程调用的ws地址等等。如果每个环境build前手动修改这些参数,显然太不fashion.

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里
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: