转载地址:http://blog.csdn.net/stormragewang/article/details/43407471
心得
apache的开源maven插件对我们使用maven进行打包,发布的流程简化了不少。开源插件帮我们减少了了解详细流程的工作量,那么同时肯定会带来熟悉各个插件默认配置的麻烦,以下是最近使用maven插件的一些心得。
- 我们在创建工程是的命名最好遵从maven工程的习惯,尤其是artifactId。虽然你后面可以修改配置文件来修改打包后的jar或war包名,但是使用maven-delpoy-plugin插件时,默认上传的就是artifactId开头的,目前我还没有找到好的解决办法。
- 网上有介绍使用maven-war-plugin的overlay属性来合并多个web工程,但是overlay只是合并资源文件,并不能合并web.xml,参考http://java.dzone.com/articles/mavens-war-overlay-what-are。我后来找到了cargo-maven2-plugin插件,其介绍在http://cargo.codehaus.org/Merging+WAR+files。
- 一般常用的插件有:发布jar到私有库,会用到maven-deploy插件;同时发布源码会用到maven-source-plugin插件;合并多个web工程会用到cargo-maven-plugin插件。
1、首先在nexus私有库中创建一个可以上传jar包的用户。我先创建了一个角色,再创建一个上传的用户,这样其他项目组的成员可以重用这个角色的配置。
创建用户
2、在个人maven配置文件中添加该用户的信息
setting.xml
3、在maven工程的pom.xml配置部署的仓库,注意pom.xml和setting.xml中的id属性要一致
1 <distributionManagement> 2 <repository> 3 <id>packaging-releases</id> 4 <name>Packaging Release Repository</name> 5 <url>http://127.0.0.1:8081/nexus/content/repositories/packaging-release/</url> 6 </repository> 7 <snapshotRepository> 8 <id>packaging-snapshots</id> 9 <name>Packaging Snapshot Repository</name> 10 <url>http://127.0.0.1:8081/nexus/content/repositories/packaging-snapshot/</url> 11 </snapshotRepository> 12 </distributionManagement>
再部署时,就会自动上传源码包了
cargo-maven2-plugin插件
当我们需要和并多个war包时,使用cargo-maven2-plugin可以自动帮我们合并web.xml
1、添加cargo-maven2-plugin插件,其中descriptor指向配置文件
2、配置文件src/assemble/merge.xml配置如下
3、使用cargo:uberwar合并这2个war包
输出日志如下