maven 打包jar war中jar和war的区别

maven自定义(修改)编译后输出的war或jar文件名 - 玄冬Wong - ITeye博客
博客分类:
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-assembly-plugin&/artifactId&
&version&2.4&/version&
&configuration&
&finalName&自定义文件包名&/finalName&
&appendAssemblyId&false&/appendAssemblyId&
&descriptors&
&descriptor&${basedir}/src/main/assembly.xml&/descriptor&
&/descriptors&
&/configuration&
&executions&
&execution&
&id&make-assembly&/id&
&phase&package&/phase&
&goal&single&/goal&
&/execution&
&/executions&
&/plugins&
浏览: 626179 次
来自: 宜昌
请问博主试过这个方法吗?有效吗?
molixiaogemao 写道shipping模式下同步默认 ...
shipping模式下同步默认可以开启,具体参考 GitHub ...
jacksparow 写道博主你知道,在UE4里有那些方法可以 ...
博主你知道,在UE4里有那些方法可以获取其他对象的变量?用c+ ...7030人阅读
Maven(13)
jar文件包括java普通类、资源文件和普通文件,在maven中即是打包src/main/java和src/main/resources资源文件夹下的所有文件。在打包的时候会自动生成MATA-INF文件夹,用于存储maven的pom信息和MANIFEST.MF文件。例如:
war文件包含全部的web应用程序,即所有的java类,配置信息和jsp、js等静态资源。但是需要注意war引用war的时候会将应用war的资源全部拷贝到当前war的相同文件下,重名的文件会被替换。例如:
war包依赖:
&dependency&
&groupId&com.my.module&/groupId&
&artifactId&module1&/artifactId&
&version&0.0.1-SNAPSHOT&/version&
&type&war&/type&
&/dependency&
module4依赖于module1,编译后module1类文件拷贝到了module4中classes文件下,jsp拷贝到了对应jsp目录下。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:419250次
积分:6720
积分:6720
排名:第3508名
原创:276篇
转载:20篇
评论:111条
(2)(2)(1)(15)(1)(5)(1)(5)(4)(4)(6)(4)(4)(7)(7)(4)(4)(6)(4)(6)(10)(11)(7)(19)(10)(21)(13)(11)(17)(14)(6)(11)(1)(7)(18)(28)拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(6143a1-ua98).
重新安装浏览器,或使用别的浏览器Maven 管理不同jdk版本的jar,war,eba - 粗人 - ITeye博客
博客分类:
在之前的项目中虽然用到了Maven,但
没有用到Maven 中的classifier,因此
发布jdk15和jdk16不同版本的包比较痛苦,jar在Maven的repository无法区别是什么jdk版本。
Maven坐标中的classifier似乎是专门解决不同jdk版本的包而设计的。另外flex中的module也是用classifier来解决的。
原理理论就不多说了,主要记录下来对原来项目做了哪些修改。
总的原则是jdk15下的lib不加classifier标记,jdk15和jdk16可以通用的lib不加classifier。只对在jdk16下需要特殊处理的lib加classifier标记。有以下几个jar在jdk16下特殊处理:
web-extension
war-extension
pvm-flow-engine
lo-docgen-service
lo-snapshot-service
另外jdk16下assembly也要处理,jdk16下被特殊处理过的jar在dependency中要加上classifier标记。
Parent pom中的修改:
Parent pom中增加了一个jdk property,这个property为空,也就是默认jdk15情况下jdk标记为空:
&properties&
&jdk&&/jdk&
Jar plugin中增加了classifier配置。maven-jar-plugin在打包jar时,如果classifier为空时,生成的jar文件会忽略classifier。
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-jar-plugin&/artifactId&
&configuration&
&classifier&${jdk}&/classifier&
&/configuration&
Sub project中的修改:
比如web-extension中在原来的profile中设置了jdk16属性,这样执行mvn命令时加上 -Djre=6时,${jdk}就不再为空,变成了jdk16, maven-jar-plugin打包出jar时就会加上classifier标记jdk16, web-extension-1.1.0.0-SNAPSHOT-jdk16.jar.
&id&jre6&/id&
&activation&
&property&
&name&jre&/name&
&value&6&/value&
&/property&
&/activation&
&properties&
&jdk&jdk16&/jdk&
&manifest.template.name&template.mf.jre6&/manifest.template.name&
&xml.bind.context.factory&com.sun.xml.internal.bind.v2.ContextFactory&/xml.bind.context.factory&
&/properties&
&/profile&
Dependency
原来pom中的dependency如果有依赖jdk16下特殊处理过的lib(上面那5个),则在dependency中需要加上classifier标记.
&dependency&
&groupId&com.moodys.loan&/groupId&
&artifactId&web-extension&/artifactId&
&version&${loan.version}&/version&
&classifier&${jdk}&/classifier&
&/dependency&
Classifier for EBA
目前打EBA的plugin还不支持classifier,只能采用一些非常规手段解决,下面的方法不是很好,只能将就着用着:
&version&${xxx.version}${jdk.eba.classifier}
&/version&
&properties&
&jdk&&/jdk&
&jdk.eba.classifier&&/jdk.eba.classifier&
&profiles&
&id&jre6&/id&
&activation&
&property&
&name&jre&/name&
&value&6&/value&
&/property&
&/activation&
&properties&
&jdk&jdk16&/jdk&
&jdk.eba.classifier&-jdk16&/jdk.eba.classifier&
&/properties&
&/profile&
&/profiles&
浏览: 38383 次
来自: 深圳
明知道Spring OSGI烂,现在没人管就不要使用了吗,以前 ...
我觉得梦想是一辈子的事。不必要非要很大事件才叫梦想。很具体的, ...
输入“D:\mysql\bin&mysqld --ins ...
老兄 问一个问题 支持自动部署 war 包不 &wsIn ...
Websphere 6.1 自带JDK1.5,是支持泛型的。我 ...

我要回帖

更多关于 maven pom jar war 的文章

 

随机推荐