使用maven profile指定配置文件打包适用多环境
2017-02-26 17:18
375 查看
开发过程, 我们习惯把数据源配置, 项目常量, 日志配置等基础数据配置写到一个个单独的的文件中. 如jdbc.properties等各种.格式的文件.
如何不频繁修改配置文件, 随时打包不同基础数据配置信息的项目.
文中有大图片, 阅读时模糊, 建议用鼠标左键按住,把图片拖到浏览器新的窗口去看.
1.新建maven项目, 在pom.xml中添加 profile节点信息如下:
2. 在项目中添加各环境需要的数据源配置文件,分不同目录存放, 分别是开发,测试, 预演,生产 环境. 如下图左边部分所示.
3. pom.xml中配置resource节点信息.
resource节点信息解释:
<directory>src/main/resources</directory> <!--打包时包含src/main/resources目录下所有"子"文件 和 "孙"文件.如config 和environment -->
<exclude>environment/development/**</exclude> <!--打包时排除src/main/resources/environment/development下所有"子"文件 和 "孙"文件.-->
<exclude>environment/test/**</exclude> <!--打包时排除src/main/resources/environment/test下所有"子"文件 和 "孙"文件.-->
<exclude>environment/preview/**</exclude> <!--打包时排除src/main/resources/environment/preview下所有"子"文件 和 "孙"文件.-->
<exclude>environment/production/**</exclude><!--打包时排除src/main/resources/environment/production下所有"子"文件 和 "孙"文件.-->
<!-- 注意点: 如果写一个心号*, 如<exclude>environment/development/*</exclude> 则表示:打包时排除src/main/resources/environment/development下所有"子"文件, 不排除"孙"文件, 如上一个截图所示.-->
<!-- 以上配置优先度从上到下 递增, 这就达到目的: config目录下的配置各环境都需要, 而其它环境相关的配置只会有一个目录被打包--->
4. 项目打包. 打包命令mvn package -Pdev来指定激活id为 dev 的profile节点, 这样, 开发环境配置文件就会被打包.
开发: mvn package -Pdev (因为配置了默认激活dev部分, 所以也可以使用mvn package, 这与 mvn package -Pdev 效果相同)
测试: mvn package -Ptest
预演:mvn package -Pprev
生产:mvn package -Pprod
如何不频繁修改配置文件, 随时打包不同基础数据配置信息的项目.
文中有大图片, 阅读时模糊, 建议用鼠标左键按住,把图片拖到浏览器新的窗口去看.
1.新建maven项目, 在pom.xml中添加 profile节点信息如下:
<profiles> <profile> <!-- 开发环境 --> <id>dev</id> <properties> <environment>development</environment><!-- 节点名字environment是自己随意取的 --> </properties> <activation> <activeByDefault>true</activeByDefault><!-- 默认激活该profile节点--> </activation> </profile> <profile> <!-- 测试环境 --> <id>test</id> <properties> <environment>test</environment> </properties> </profile> <profile> <!-- 预演环境 --> <id>prev</id> <properties> <environment>preview</environment> </properties> </profile> <profile> <!-- 生产环境 --> <id>prod</id> <properties> <environment>production</environment> </properties> </profile> </profiles>
2. 在项目中添加各环境需要的数据源配置文件,分不同目录存放, 分别是开发,测试, 预演,生产 环境. 如下图左边部分所示.
3. pom.xml中配置resource节点信息.
<build> <resources> <resource> <directory>src/main/resources</directory> <excludes> <exclude>environment/development/*</exclude> <exclude>environment/test/*</exclude> <exclude>environment/preview/*</exclude> <exclude>environment/production/**</exclude> </excludes> </resource> <resource> <directory>src/main/resources/environment/${environment}</directory> <targetPath>environment/${environment}</targetPath> </resource> </resources> </build>
resource节点信息解释:
<directory>src/main/resources</directory> <!--打包时包含src/main/resources目录下所有"子"文件 和 "孙"文件.如config 和environment -->
<exclude>environment/development/**</exclude> <!--打包时排除src/main/resources/environment/development下所有"子"文件 和 "孙"文件.-->
<exclude>environment/test/**</exclude> <!--打包时排除src/main/resources/environment/test下所有"子"文件 和 "孙"文件.-->
<exclude>environment/preview/**</exclude> <!--打包时排除src/main/resources/environment/preview下所有"子"文件 和 "孙"文件.-->
<exclude>environment/production/**</exclude><!--打包时排除src/main/resources/environment/production下所有"子"文件 和 "孙"文件.-->
<!-- 注意点: 如果写一个心号*, 如<exclude>environment/development/*</exclude> 则表示:打包时排除src/main/resources/environment/development下所有"子"文件, 不排除"孙"文件, 如上一个截图所示.-->
<!-- 以上配置优先度从上到下 递增, 这就达到目的: config目录下的配置各环境都需要, 而其它环境相关的配置只会有一个目录被打包--->
<directory>src/main/resources/environment/${environment}</directory> <!-- 打包时包含src/main/resources/environment/${environment}下所有"子"文件,environment变量值来自profile中赋值 --> <targetPath>environment/${environment}</targetPath><!--指定src/main/resources/environment/${environment}所有"子文件" 打包 到包的哪个目录 -->
4. 项目打包. 打包命令mvn package -Pdev来指定激活id为 dev 的profile节点, 这样, 开发环境配置文件就会被打包.
开发: mvn package -Pdev (因为配置了默认激活dev部分, 所以也可以使用mvn package, 这与 mvn package -Pdev 效果相同)
测试: mvn package -Ptest
预演:mvn package -Pprev
生产:mvn package -Pprod
相关文章推荐
- 使用maven profile指定配置文件打包适用多环境
- 使用maven profile指定配置文件打包适用多环境的方法
- maven 使用-P指定环境打包,linux移动配置文件失败,windows成功!
- as通过gradle实现多渠道打包+使用配置文件进行版本管理+指定apk输出路径和apk文件名
- EFM32在使用IAR开发环境配置ICf文件以及指定程序存储地址空间
- 使用maven profile实现多环境配置相关打包
- mvn 多环境打包 配置文件使用
- 使用Maven Profile按需加载开发、测试和产品环境的配置文件
- as通过gradle实现多渠道打包+使用配置文件进行版本管理+指定apk输出路径和apk文件名
- Jenkins的maven工程打包的时候怎么指定不同环境的配置文件
- 使用maven profile 指定配置打包
- 使用Maven自动打包配置文件生成开发环境,测试环境,生产环境
- EFM32在使用IAR开发环境配置ICf文件以及指定程序存储地址空间
- as通过gradle实现多渠道打包+使用配置文件进行版本管理+指定apk输出路径和apk文件名
- Jenkins的maven工程打包的时候指定不同环境的配置文件
- Maven profile结合Maven AntRun Plugin实现不同环境配置文件分离打包
- Jar 打包 EXE文件,可以脱离java环境运行 Jsmooth的使用
- JDK1.7.0_51使用javah工具生成.h声明文件的环境配置
- java 使用递归获取指定文件路径目录,删除指定的文件后缀(可扩展,根据具体需要的删除的后缀进行配置)~~
- maven: 开发、测试和生产环境使用不同的配置文件例子