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
<plugins>
<plugin>
<groupId></groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<!-- 将goal shade:shade 绑定到 phase package 上,绑定后执行mvn package即可 -->
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="">
<mainClass></mainClass>
</transformer>
<transformer implementation="">
<resource>META-INF/</resource>
</transformer>
<transformer implementation="">
<resource>META-INF/</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
配置完成后,执行mvn package即可打包。生成的jar文件包含了所有依赖,所以可以直接运行。
<transformer implementation="">
<resource>META-INF/</resource>
</transformer>
<transformer implementation="">
<resource>META-INF/</resource>
</transformer>
这里的AppendingTransformer的作用是:在Spring Framework中会将多个依赖打到一个jar中,每个jar都会包含和文件,如果生成一个jar包文件会互相覆盖,运行时就会出现XML schema文件出错。为了避免互相影响,使用AppendingTransformer来对文件内容追加合并.
2 . maven打war包
2.1 插件使用
打war时需要maven-resources-plugin(资源插件),maven-compiler-plugin(编译项目),maven-war-plugin插件
maven-war-plugin配置
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
不想打进war包的jar的配置
<build>
<filters>
<!-- 过滤文件,通常是一个属性文件(名值对的形式) -->
<filter>src/main/webapp/META-INF/</filter>
</filters>
<finalName>communitytag</finalName>
<plugins>
<plugin>
<groupId></groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-alpha-1</version>
<configuration>
<!-- 不想打进war包的的配置 -->
<warSourceExcludes>*/lib/</warSourceExcludes>
<webResources>
<resource>
<!-- 元配置文件的目录,相对于文件的路径 -->
<directory>src/main/webapp/WEB-INF</directory>
<!-- 是否过滤文件,也就是是否启动auto-config的功能 -->
<filtering>true</filtering>
<!-- 目标路径 -->
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
3 . idea中maven打war包(多种方式)
单个执行指令先clean->package
Build Artifacts