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

maven打包时不要打lib包的方法 - 游戏技术网-专注于游戏服务器开发,独立游戏开发者
Java服务器开发群:C++游戏开发群:Unity3d游戏开发:
部署项目的时候,需要把项目上传到远程主机,比如远程服务器。为了更快的上传到远程服务器,最好的办法就是把项目引用的lib与我们开发的代码分开。更新的时候,只更新我们自己开发的代码,那个速度叫快呀。 一, 不带lib的jar包。在pom.xml中,配置如下代码: & &plugin& & & & & & & & &&groupId&org.apache.maven.plugins&/groupId& & & & & & & & &&artifactId&maven-dependency-plugin&/artifactId& & & & & & & & &&executions& & & & & & & & & & &&execution& & & & & & & & & & & & &&id&copy-dependencies&/id& & & & & & & & & & & & &&phase&prepare-package&/phase& & & & & & & & & & & & &&goals& & & & & & & & & & & & & & &&goal&copy-dependencies&/goal& & & & & & & & & & & & &&/goals& & & & & & & & & & & & &&configuration& & & & & & & & & & & & & & &&outputDirectory&${project.build.directory}/lib&/outputDirectory& & & & & & & & & & & & & & &&overWriteReleases&false&/overWriteReleases& & & & & & & & & & & & & & &&overWriteSnapshots&false&/overWriteSnapshots& & & & & & & & & & & & & & &&overWriteIfNewer&true&/overWriteIfNewer& & & & & & & & & & & & &&/configuration& & & & & & & & & & &&/execution& & & & & & & & &&/executions& & & & & & &&/plugin& & & & & & &&plugin& & & & & & & & &&groupId&org.apache.maven.plugins&/groupId& & & & & & & & &&artifactId&maven-jar-plugin&/artifactId& & & & & & & & &&configuration& & & & & & & & & & &&archive& & & & & & & & & & & & &&manifest& & & & & & & & & & & & & & &&addClasspath&true&/addClasspath& & & & & & & & & & & & & & &&classpathPrefix&lib/&/classpathPrefix& & & & & & & & & & & & & & &&mainClass&com.vwvo.lbs.start.LBSServerStart&/mainClass& & & & & & & & & & & & &&/manifest& & & & & & & & & & &&/archive& & & & & & & & &&/configuration& & & & & & &&/plugin&二, 不带lib的war包 & &plugin& & & & & & & & &&groupId&org.apache.maven.plugins&/groupId& & & & & & & & &&artifactId&maven-war-plugin&/artifactId& & & & & & & & &&version&2.2&/version& & & & & & & & &&configuration& & & & & & & & & & &&webappDirectory&WebContent&/webappDirectory& & & & & & & & & & &&!-- 必须指定,否则默认会变成在target/war/work 导致被打包进war文件,指定后为target/work --& & & & & & & & & & &&workDirectory&${project.build.directory}/work&/workDirectory& & & & & & & & & & &&useCache&false&/useCache& & & & & & & & & & &&!--这里是配置哪些不需要打包的文件,多个以逗号分隔--& & & & & & & & & & &&packagingExcludes&WEB-INF/lib/*.jar,WEB-INF/classes/extensions/*.jar&/packagingExcludes& & & & & & & & & & &&archive& & & & & & & & & & & & &&addMavenDescriptor&true&/addMavenDescriptor& & & & & & & & & & &&/archive& & & & & & & & &&/configuration& & & & & & &&/plugin&然后运行mvn install ,在target中就可以找到jar包了。
上一篇: &
下一篇: &使用 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,及一个配置文件。这主要是一个例子供参考。
浏览: 10178 次
来自: 厦门
wenzibo259 写道最近在做java的web项目,想实现 ...
最近在做java的web项目,想实现一共类似outlook邮件 ...
新领导终于来了,期待继续创造bright future.
helloandroid 写道汗,只有两个人的项目组
而且另一 ...
汗,只有两个人的项目组Maven包引用出现重复包,去重复包3种方法(javassist) -
- ITeye技术网站
博客分类:
我出现的问题是由于Hiberante中引用的包为&groupId&org.javassist&/groupId&而strtus2中引用的包为&groupId&javassist&/groupId&,由于引用不同,导致打包项目内含两个项目,此时布暑项目时会报错误.要去掉一个javassist包
1.使用maven中的pulgin功能
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-war-plugin&/artifactId&
&version&2.0.2&/version&
&configuration&
&warSourceExcludes&WEB-INF/lib/javassist-3.11.0.GA.jar&/warSourceExcludes&
&/configuration&
只方法是强制去掉包,如果maven用到profiles打包方式就会启动项目时报错
2.由于知道是那个包要去掉,所以我们直接让此jar包不参与打包
&dependency&
&groupId&javassist&/groupId&
&artifactId&javassist&/artifactId&
&version&3.11.0.GA&/version&
&scope&test&/scope&
&/dependency&
将&scope&test&/scope&设置为test类型,简单粗暴,此时打包不会将包打入项目,启动不会报错
3.将包的groupId替换为一到的,我这里是将&groupId&org.javassist&/groupId&替换为&groupId&javassist&/groupId&
&dependency&
&groupId&org.apache.struts&/groupId&
&artifactId&struts2-core&/artifactId&
&version&${struts2.version}&/version&
&exclusions&
&exclusion&
&groupId&javassist&/groupId&
&artifactId&javassist&/artifactId&
&/exclusion&
&/exclusions&
&/dependency&
些方法查找原因会有些麻烦,我是借助于IDea 的Diagrams工具。查看包的引用。
仰望天空的黑马
浏览: 4845 次
来自: 珠海
http://blog.csdn.net/mn960mn/ar ...
很久没用hibernate了使用maven打war,本地的jar包没有被包含 -
- ITeye技术网站
博客分类:
在使用一些本地的jar包的时候,
&dependency&
&groupId&com.dropbox&/groupId&
&artifactId&dropbox-sdk&/artifactId&
&version&1.3.1&/version&
&scope&system&/scope&
&systemPath&${project.basedir}/libs/dropbox-java-sdk-1.3.1.jar&/systemPath&
&/dependency&
但是在package 的时候,本地的jar包却未能被包含进去。
我的解决办法:
修改lib的目录到/src/main/webapp/WEB-INF/lib/ ,
这样paceage的时候就自然会把文件复制到war中。
&dependency&
&groupId&org.apache&/groupId&
&artifactId&test&/artifactId&
&version&1.0&/version&
&scope&system&/scope&
&systemPath&${basedir}/src/main/webapp/WEB-INF/lib/paypal_base.jar&/systemPath&
&/dependency&
其它解决办法(复杂):
/questions//how-to-add-external-jar-to-maven-webapp-project/
额。。。你这用法太奇特了,你会maven吗 你知道&scope&system&/scope&是什么意思吗,你知道默认&scope&是什么吗maven我只会一点,这个用法不对吗?希望告知。&scope&system&/scope& 我认为就是引用本地的jar包。
浏览: 38608 次
来自: 晋中
好东西! 速度超快
把&scope&system&/scope& ...
liubey 写道额。。。你这用法太奇特了,你会maven吗
额。。。你这用法太奇特了,你会maven吗 你知道&sc ...下次自动登录
现在的位置:
& 综合 & 正文
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
打包之前过滤掉不想要被打进 .war包的jar,注意:这个地方,本来路径应该是
WEB-INF/lib/anaalyzer-2.0.4.jar,但是经过多次试验,不能这样,至于咋回事儿,搞不清楚。。经多方查证均无结果
暂且这样吧,虽然显得很丑陋,但是总能解决问题吧
*/lib/analyzer-2.0.4.jar
src/main/webapp/WEB-INF
如上配置及到web项目的pom文件中,且配置中路径相关的信息均以pom作为路径。
应用举例:
为了能更好的理解这个配置是怎么回事儿,我们来看看达到了什么样的效果,如下:
在应用的配置文件路径为 src/main/webapp/WEB-INF/biz/a.xml 有如下配置
version="1.0" encoding="GBK"
&!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"
default-autowire="byName"
id="tagEntityManagementAO" class="munitytag.biz.ao.impl.DefaultTagEntityManagementAO"
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内容已经动态产生了,如下
version="1.0" encoding="GBK"
&!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"
default-autowire="byName"
id="tagEntityManagementAO" class="munitytag.biz.ao.impl.DefaultTagEntityManagementAO"
name="namespace" value="242"
结果已经很形象了。。。虽然不能支持像antx那样对velocity语法的支持,但是此插件对于大多数环境打包来说,已经足够了。至于这个plugin的深度的功能研究,待以后有需求的时候继续研究,记录在此以便查阅。
&&&&推荐文章:
【上篇】【下篇】

我要回帖

更多关于 mavenwarplugin 详解 的文章

 

随机推荐