maven打war包


maven打包

1 . maven打jar包(Spring Framework)

1.1 插件使用

maven-resources-plugin(资源插件),maven-compiler-plugin(编译项目),maven-jar-plugin(将项目打成jar包),maven-assembly-plugin(将所有依赖打成jar包)。使用maven-assembly-plugin容易产生一个错误,就是在多个依赖冲突的时候无法解决。不过使用 maven-shade-plugin 生成一个 uber-jar,可以解决依赖间的冲突,适用于Spring Framework。

配置 maven-shade-plugin

                  org.apache.maven.plugins           maven-shade-plugin           2.4.1                             				                 package                                          shade                                                                                                                       com.xxg.Main                                                                                    META-INF/spring.handlers                                                                                     META-INF/spring.schemas                                                                                                         

配置完成后,执行mvn package即可打包。生成的jar文件包含了所有依赖,所以可以直接运行。

        META-INF/spring.handlers               META-INF/spring.schemas   

这里的AppendingTransformer的作用是:在Spring Framework中会将多个依赖打到一个jar中,每个jar都会包含spring.handlers和spring.schemas文件,如果生成一个jar包文件会互相覆盖,运行时就会出现XML schema文件出错。为了避免互相影响,使用AppendingTransformer来对文件内容追加合并.

2 . maven打war包

2.1 插件使用

打war时需要maven-resources-plugin(资源插件),maven-compiler-plugin(编译项目),maven-war-plugin插件

maven-war-plugin配置

      maven-war-plugin      3.2.0                 false       

不想打进war包的jar的配置

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

3 . idea中maven打war包(多种方式)

单个执行指令先clean->package
maven打war包

Build Artifacts
maven打war包