使用maven的profile切换项目各环境的参数
来源:互联网 发布:matlab数据毛刺 编辑:程序博客网 时间:2024/06/01 11:47
http://blog.csdn.net/massivestars/article/details/53510586
maven默认的运行环境是test,我打包的时候怎么样才能切换到生产环境
在实际开发项目中,常常有几种环境,一般情况下最少有三种环境:开发、测试、正式。
各个环境之间的参数各不相同,比如MySQL、Redis等不同环境的host不一样,若每个环境都手动替换环境很容易出错,这里我们利用maven的profile功能切换环境。
本文的项目结构图:
src/main/resources/dev 目录的properties是开发环境的配置项目
src/main/resources/test 目录的properties是测试环境的配置项目
在pom.xml定义环境的profile
activeByDefault标签的值为true的话表示默认的profile,使用mvn install命令起作用的就是它,这里为dev
resources标签定义要包含的资源,在下面的配置下package阶段会把resources文件夹里的 ${profiles.activation}/* 文件打包
这里的${profiles.activation}由命令maven的-P选项指定,例:mvn install -Ptest 就是打包 test/* 即test目录下的所有文件
applicationContext.xml文件如下
这里取${profiles.activation:dev}是取${profiles.activation}的值,若不存在,则默认为dev;
若值为dev,locations的值为classpath:dev/jdbc.properties。
${profiles.activation}是在web.xml里的context-param取值
值得注意的是,${profiles.activation}由于有默认值的存在,applicationContext.xml不需要启动web容器去读取web.xml中的${profiles.activation},
这有效的保障了使用JUnit进行单元测试,也就是说在maven的test目录里的测试用例可以正常运行。
现在的问题就成了如何把maven里激活的profile值传进来,使用maven-war-plugin能在maven install的时期会设置web.xml占位符值${}的值
所有文件配置完毕,使用 mvn install -P{profile} 命令打包war
example:
1、mvn install 没有指定profile,默认为dev
2、mvn install -Ptest -Dmaven.test.skip=true 指定profile为test并跳过测试
在使用tomcat部署时,先使用maven的命令切换至目标环境,然后tomcat的目标目录设置为编译后的target/${project.actifact}目录(大多数IDE比如eclipse和IDEA都是这样)
阅读全文
0 0
- 使用maven的profile切换项目各环境的参数
- 使用maven的profile切换项目各环境的参数
- Maven项目之Spring.profile.开发.测试.生产环境的配置和切换之一键部署
- 使用Maven和Spring的profile功能实现不同运行环境的无缝切换
- Maven Profile的使用
- maven profile的使用
- maven profile的使用
- maven profile的使用
- maven profile的使用
- maven profile的使用
- maven profile的使用
- maven profile的使用
- maven profile的使用
- 使用maven的profile和filter插件管理配置项--不同环境(dev,beta,production)轻松切换
- 使用maven的profile和filter插件管理配置项--不同环境(dev,beta,production)轻松切换
- 使用maven的profile和filter插件管理配置项--不同环境(dev,beta,production)轻松切换
- Maven针对不同的环境使用Profile完成打包部署
- Maven针对不同的环境使用Profile完成打包部署
- 模糊查询(LIKE)AND (PATINDEX() . CHARINDEX())
- C语言sort函数如何使用
- 就地逆置(源码用c++)
- unreal engine timeline function
- python+Eclipse+pydev环境搭建
- 使用maven的profile切换项目各环境的参数
- 从Android到React Native开发入门
- unreal engine pawn controlled spring arm camera
- B-树,B+树与B*树的优缺点比较
- CSS position: absolute 绝对定位精讲
- 84. Largest Rectangle in Histogram
- Handler总结
- LPC 简单程序
- linux /usr /var /etc 目录