栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Maven根据不同环境打包不同配置文件的方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Maven根据不同环境打包不同配置文件的方法

开发项目时会遇到这个问题:开发环境,测试环境,生产环境的配置文件不同,打包时经常要手动更改配置文件,更改的少还可以接受,但是如果需要更多个配置文件,手动的方法就显得非常笨重了。

下面介绍一种方法,利用Maven插件来打包不同环境的配置文件。我们用到的是maven-war-plugin这个插件。

首先贴出整个pom文件:


  4.0.0
  CMS
  CMS
  war
  0.0.1-SNAPSHOT
  Cms
  http://maven.apache.org
  
    4.1.6.RELEASE
    UTF-8
  
     
   
  
 
    
      
      dev
      
 dev
      
      
 true
      
    
    
      
      test
      
 test
      
    
    
      
      prod
      
 prod
      
    
  
  
    Cms
    src
    
      
 maven-compiler-plugin
 3.3
 
   1.7
   1.7
 
      
      
 org.apache.maven.plugins
 maven-war-plugin
 2.1.1
 
   WebRootWEB-INFweb.xml
   WebRoot
   
     false
   
   Cms
   
     
src/main/resoreces/${package.environment}
WEB-INF/classes
true
     
   
 
      
    
    
      
 src
 true
 
   ***.xml
 
      
    
  

简单说明几个地方:


  
    
    dev
    
      dev
    
    
      true
    
  
  
    
    test
    
      test
    
  
  
    
    prod
    
      prod
    
  

此处借助profiles定义几个不同的环境文件夹,相同的需要在项目里面创建同id的文件夹,用来存放特定环境的配置文件。

我之前的resource目录:

我的目录结构是相对复杂的一种有2层目录,只有一层目录的也一样更简单。外层xml文件,还有一个properties文件夹。这里我针对不同环境需要更改的配置文件有4个,标红的。

再看一下改造后resource的目录结构:

随便展开一个dev文件夹是这样:

可见需要更改的配置文件,需要copy到各个环境的文件夹当中去,而不需要更改的文件,则不需要复制一份。

此处需要说明的是,如果我指定的是dev,则maven会将dev下的所有文件拿出来,db.xml覆盖掉外面的db.xml,dev.properties文件夹中的配置文件会拿出来放到外面的properties文件夹中。所以说这里是非常灵活的,你需要哪些文件定制,完全由自己来控制。

再来看pom文件


  org.apache.maven.plugins
  maven-war-plugin
  2.1.1
  
    WebRootWEB-INFweb.xml
    WebRoot
    
      false
    
    test
    
      
 src/main/resources/${package.environment}
 WEB-INF/classes
 true
      
    
  

这里使用的是

maven-war-plugin

这个插件,此插件的功能是很强大的,想深入了解,可以到官网去看。

${package.environment}

动态指定目录,接收参数。

targetPath

目标路径。

另外说2点,这两个标签

WebRootWEB-INFweb.xml
WebRoot

1.如果maven打包错误说找不到web.xml,说明你得项目结构不是标准的,用webxml标签指定一下就可以了

2.如果jsp打包没有的话,同样的问题,指定一下目录,我的项目结构就不是maven标准结构,所以需要指定一下。

改造完毕,接下来就是利用maven打包了。

mvn clean ; mvn compile;

mvn -P test package; 传相应环境参数就ok了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/140318.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号