maven 开发和生产环境建立不同的配置文件


还是根据我以前的思路: 

 src/main目录下原来有 java, resources, 我新建几个目录: resources-dev, resources-test, resources-prod.

resources --- 一些共享的配置文件, 一般不需要修改的
resources-dev --- 开发环境下用的配置文件, 和resources目录下文件没有重合.
resources-prod --- 生产环境下用的配置文件, 和resources目录下文件没有重合.


本机开发的时候设置源码目录为 java, resources, resources-dev, 可以直接开发调试.

编译的时候希望maven根据不同环境, 打包不同的目录下的文件, 我们利用maven的profile和build-helper-maven-plugin插件就可以实现.

     < profiles >
         < profile >
             < id >dev </ id >
             < build >
                 < plugins >
                     < plugin >
                         < groupId >org.codehaus.mojo </ groupId >
                         < artifactId >build-helper-maven-plugin </ artifactId >
                         < version >1.5 </ version >
                         < executions >
                             < execution >
                                 < id >add-resource </ id >
                                 < phase >generate-resources </ phase >
                                 < goals >
                                     < goal >add-resource </ goal >
                                 </ goals >
                                 < configuration >
                                     < resources >
                                         < resource >
                                             < directory >src/main/resources_dev </ directory >
                                         </ resource >
                                     </ resources >
                                 </ configuration >
                             </ execution >
                         </ executions >
                     </ plugin >
                     < plugin >
                         < artifactId >maven-war-plugin </ artifactId >
                         < executions >
                             < execution >
                                 < phase >package </ phase >
                                 < goals >
                                     < goal >war </ goal >
                                 </ goals >
                                 < configuration >
                                     < classifier >dev </ classifier >
                                 </ configuration >
                             </ execution >
                         </ executions >
                     </ plugin >

                 </ plugins >
             </ build >
         </ profile >
         < profile >
             < id >test </ id >
             < build >
                 < plugins >
                     < plugin >
                         < groupId >org.codehaus.mojo </ groupId >
                         < artifactId >build-helper-maven-plugin </ artifactId >
                         < version >1.5 </ version >
                         < executions >
                             < execution >
                                 < id >add-resource </ id >
                                 < phase >generate-resources </ phase >
                                 < goals >
                                     < goal >add-resource </ goal >
                                 </ goals >
                                 < configuration >
                                     < resources >
                                         < resource >
                                             < directory >src/main/resources_test </ directory >
                                         </ resource >
                                     </ resources >
                                 </ configuration >
                             </ execution >
                         </ executions >
                     </ plugin >
                     < plugin >
                         < groupId >org.apache.maven.plugins </ groupId >
                         < artifactId >maven-war-plugin </ artifactId >
                         < executions >
                             < execution >
                                 < phase >package </ phase >
                                 < goals >
                                     < goal >war </ goal >
                                 </ goals >
                                 < configuration >
                                     < classifier >test </ classifier >
                                 </ configuration >
                             </ execution >
                         </ executions >
                     </ plugin >
                 </ plugins >
             </ build >
         </ profile >
     </ profiles >

(文章后面有简化版本)

自己根据实际的部署环境修改吧, 运行 mvn package -P test 就可以打包了.


反正很简单啦. 一大堆xml, 有用的没几句....太罗嗦了


另:目前开发用resin, intellij idea 9, 调试时webapp在开发目录webapp下就地开发, 所以我的maven脚本还有如下部分:

     < build >
         < plugins >
             < plugin >
                 < groupId >org.apache.maven.plugins </ groupId >
                 < artifactId >maven-war-plugin </ artifactId >
                 < version >2.1 </ version >
                 < configuration >
                     < warSourceExcludes >WEB-INF/lib/**,WEB-INF/classes/**,WEB-INF/work/**,WEB-INF/tmp/** </ warSourceExcludes >
                     < archive >
                       < addMavenDescriptor >false </ addMavenDescriptor >
                     </ archive >
                 </ configuration >
             </ plugin >
         </ plugins >
     </ build >


这部分是公用的, 当然dev时候也不用打包.... 所以........ 可以用于本机开发, 打包到test, production等环境.



总之部署上maven不如ant灵活, ant写一套脚本一般来说也很少修改了.... 想改特容易. maven想复制个目录都要想法....


______________________________________________
简化后的版本: 

     < properties >
        < package .target >notexists </ package.target >
     </ properties >
    
     < profiles >
         < profile >
             < id >dev </ id >
             < properties >
                  < package .target >dev </ package.target >
             </ properties >
         </ profile >
         < profile >
             < id >test </ id >
             < properties >
                  < package .target >test </ package.target >
             </ properties >
         </ profile >
     </ profiles >

     < build >
         < plugins >
             < plugin >
                 < groupId >org.codehaus.mojo </ groupId >
                 < artifactId >build-helper-maven-plugin </ artifactId >
                 < version >1.5 </ version >
                 < executions >
                     < execution >
                         < id >add-resource </ id >
                         < phase >generate-resources </ phase >
                         < goals >
                             < goal >add-resource </ goal >
                         </ goals >
                         < configuration >
                             < resources >
                                 < resource >
                                     < directory >src/main/resources_${package.target} </ directory >
                                 </ resource >
                             </ resources >
                         </ configuration >
                     </ execution >
                 </ executions >
             </ plugin >
             < plugin >
                 < groupId >org.apache.maven.plugins </ groupId >
                 < artifactId >maven-war-plugin </ artifactId >
                 < version >2.1 </ version >
                 < configuration >
                     < warSourceExcludes >WEB-INF/lib/**,WEB-INF/classes/**,WEB-INF/work/**,WEB-INF/tmp/** </ warSourceExcludes >
                     < archive >
                       < addMavenDescriptor >false </ addMavenDescriptor >
                     </ archive >
                 </ configuration >
                 < executions >
                     < execution >
                         < phase >package </ phase >
                         < goals >
                             < goal >war </ goal >
                         </ goals >
                         < configuration >
                             < classifier >${package.target} </ classifier >
                         </ configuration >
                     </ execution >
                 </ executions >
             </ plugin >
         </ plugins >
     </ build >

转载于:https://my.oschina.net/stonezing/blog/480671

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值