maven war plugin配置如何去掉不想打进去的包

maven maven-war-plugin 的配置 - 行走在路上 - ITeye博客
博客分类:
在公司使用ANTX作为构建工具,一直以来感觉ANTX的auto-config功能很实用,它很好的将不同环境的打包方式通过properties文件分离了开来,且ANTX的这部分功能的实现应该是采用Velocity实现,故可以实现非简单的变量填充的功能,在配置中还可以写简单VM的语法。后来构建工具转型到M***EN之后一直在寻找一种与ANTX 的autoconfig功能类似的插件,以解决不同环境打包的动态参数设置问题。经过google后发现了此插件,此处记录一下该插件----maven-war-plugin 。
:(包括排除
不想打进war包的jar
&!-- 过滤文件,通常是一个属性文件(名值对的形式) --&
&filter&src/main/webapp/META-INF/auto-config.properties&/filter&
&filter&${user.home}/antx.properties&/filter&
&/filters&
&finalName&communitytag&/finalName&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-war-plugin&/artifactId&
&version&2.1-alpha-1&/version&
&configuration&
打包之前过滤掉不想要被打进 .war包的jar,注意:这个地方,本来路径应该是
WEB-INF/lib/anaalyzer-2.0.4.jar,但是经过多次试验,不能这样,至于咋回事儿,搞不清楚。。经多方查证均无结果
暂且这样吧,虽然显得很丑陋,但是总能解决问题吧
&warSourceExcludes&*/lib/analyzer-2.0.4.jar&/warSourceExcludes&
&webResources&
&resource&
&!-- 元配置文件的目录,相对于pom.xml文件的路径 --&
&directory&src/main/webapp/WEB-INF&/directory&
&!-- 是否过滤文件,也就是是否启动auto-config的功能 --&
&filtering&true&/filtering&
&!-- 目标路径 --&
&targetPath&WEB-INF&/targetPath&
&/resource&
&/webResources&
&/configuration&
&/plugins&
如上配置及到web项目的pom文件中,且配置中路径相关的信息均以pom作为路径。
应用举例:
为了能更好的理解这个配置是怎么回事儿,我们来看看达到了什么样的效果,如下:
在应用的配置文件路径为 src/main/webapp/WEB-INF/biz/a.xml 有如下配置
&?xml version="1.0" encoding="GBK"?&
&!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"&
&beans default-autowire="byName"&
&bean id="tagEntityManagementAO" class="munitytag.biz.ao.impl.DefaultTagEntityManagementAO"&
&property name="namespace" value="${communitytag.biz.tair.namespace}"/&
上面的配置中有如下需要动态植入的变量
${communitytag.biz.tair.namespace}
故我们将此变量对应的值配置到属性文件src/main/webapp/META-INF/auto-config.properties(pom.xml文件中filter的配置),如下
communitytag.biz.tair.namespace=242
至此,执行命令mvn install,我们看看目标文件targe下的a.xml内容已经动态产生了,如下
&?xml version="1.0" encoding="GBK"?&
&!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"&
&beans default-autowire="byName"&
&bean id="tagEntityManagementAO" class="munitytag.biz.ao.impl.DefaultTagEntityManagementAO"&
&property name="namespace" value="242"/&
结果已经很形象了。。。虽然不能支持像antx那样对velocity语法的支持,但是此插件对于大多数环境打包来说,已经足够了。至于这个plugin的深度的功能研究,待以后有需求的时候继续研究,记录在此以便查阅。
记录在此以便查阅
浏览 72422
浏览: 94542 次
来自: 杭州
pan_java 写道lishuaibt 写道后续的 可能要等 ...
好文章,坐等楼主第五章。目前正在了解ibatis-shardi ...
如果是C、A之间加入节点B,那原来落在CB之间的 ...
我试了下用这个插件不行,需要用maven-autoconfig ...
哈哈 又看到你了。。。使用 maven-war-plugin 打包时排除不需要的文件 -
- ITeye博客
博客分类:
由于项目是传统MVC 结构项目,但有新需求要求进行插件化,使部分功能在标准版发布时候,不包含进去。就此研究了一下maven打包插件的使用方式。
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-war-plugin&/artifactId&
&version&2.2&/version&
&configuration&
&!-- &webappDirectory&src/main/webapp&/webappDirectory& --&
&!-- &workDirectory&${project.build.directory}/work&/workDirectory& --&
&warName&${project.build.finalName}&/warName&
&excludes&
js/plugins/*.*
&/excludes&
&packagingExcludes&
WEB-INF/classes/com/ys/finance/plugin/*.*,
WEB-INF/classes/ehcache.xml
&/packagingExcludes&
&/configuration&
这段代码就是 打包时候排除一部分JS,一部分Java,及一个配置文件。这主要是一个例子供参考。
浏览: 10580 次
来自: 厦门
wenzibo259 写道最近在做java的web项目,想实现 ...
最近在做java的web项目,想实现一共类似outlook邮件 ...
新领导终于来了,期待继续创造bright future.
helloandroid 写道汗,只有两个人的项目组
而且另一 ...
汗,只有两个人的项目组

参考资料

 

随机推荐