Maven中怎么根据不同环境打包不同配置文件

Maven中怎么根据不同环境打包不同配置文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

蜀山网站建设公司创新互联,蜀山网站设计制作,有大型网站制作公司丰富经验。已为蜀山上1000+提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的蜀山做网站的公司定做!

首先贴出整个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
        
          WebRoot\WEB-INF\web.xml
          WebRoot
          
            false
          
          Cms
          
            
              src/main/resoreces/${package.environment}
              WEB-INF/classes
              true
            
          
        
      
    
    
      
        src
        true
        
          **/*.properties
          **/*.xml
        
      
    
  

简单说明几个地方:


  
    
    dev
    
      dev
    
    
      true
    
  
  
    
    test
    
      test
    
  
  
    
    prod
    
      prod
    
  

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

我之前的resource目录:

Maven中怎么根据不同环境打包不同配置文件

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

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

Maven中怎么根据不同环境打包不同配置文件

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

Maven中怎么根据不同环境打包不同配置文件

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

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

再来看pom文件


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

这里使用的是

maven-war-plugin

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

${package.environment}

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

targetPath

目标路径。

另外说2点,这两个标签

WebRoot\WEB-INF\web.xml
WebRoot

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

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

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

mvn clean ; mvn compile;

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

关于Maven中怎么根据不同环境打包不同配置文件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


新闻名称:Maven中怎么根据不同环境打包不同配置文件
分享链接:http://ybzwz.com/article/jdieco.html