maven maven-war-plugin 的配置

在公司使用ANTX作为构建工具,一直以来感觉ANTX的auto-config功能很实用,它很好的将不同环境的打包方式通过 properties文件分离了开来,且ANTX的这部分功能的实现应该是采用Velocity实现,故可以实现非简单的变量填充的功能,在配置中还可以 写简单VM的语法。后来构建工具转型到MAVEN之后一直在寻找一种与ANTX 的autoconfig功能类似的插件,以解决不同环境打包的动态参数设置问题。经过google后发现了此插件,此处记录一下该插件 ----maven-war-plugin 。

 

 

基本配置 :(包括排除 不想打进war包的jar 的配置)

 


	
		
		src/main/webapp/META-INF/auto-config.properties
		
	
	communitytag
	
		
			org.apache.maven.plugins
			maven-war-plugin
			2.1-alpha-1
			
				
				*/lib/analyzer-2.0.4.jar
				
					
						
						src/main/webapp/WEB-INF

						
						true

						
						WEB-INF
					
				
			
		
	

 

 

如上配置及到web项目的pom文件中,且配置中路径相关的信息均以pom作为路径。

 

 

 

应用举例:

 

 

 

为了能更好的理解这个配置是怎么回事儿,我们来看看达到了什么样的效果,如下:

 

在应用的配置文件路径为 src/main/webapp/WEB-INF/biz/a.xml 有如下配置




	
		
	

 

上面的配置中有如下需要动态植入的变量

Xml代码 
  1. ${communitytag.biz.tair.namespace}  

故我们将此变量对应的值配置到属性文件src/main/webapp/META-INF/auto-config.properties(pom.xml文件中filter的配置),如下

 

Xml代码 
  1. communitytag.biz.tair.namespace=242  

 

至此,执行命令mvn install,我们看看目标文件targe下的a.xml内容已经动态产生了,如下

 

Xml代码 
  1. xml version="1.0" encoding="GBK"?>  
  2. >  
  3. <beans default-autowire="byName">  
  4.     <bean id="tagEntityManagementAO" class="com.taobao.communitytag.biz.ao.impl.DefaultTagEntityManagementAO">  
  5.         <property name="namespace" value="242"/>  
  6.     bean>  
  7. beans>  

 

结果已经很形象了。。。虽然不能支持像antx那样对velocity语法的支持,但是此插件对于大多数环境打包来说,已经足够了。至于这个plugin的深度的功能研究,待以后有需求的时候继续研究,记录在此以便查阅。

你可能感兴趣的:(maven,plugins)