需求
将项目依赖的jar包打成一个jar包
代码
<build>
<finalName>${project.artifactId}</finalName>
<defaultGoal>package</defaultGoal>
<plugins>
<plugin>
<groupId>org.revapi</groupId>
<artifactId>revapi-maven-plugin</artifactId>
<version>0.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<!-- 指定JDK版本 -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<!-- 打成jar包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<!---将依赖的jar包都打到当前工程中->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<!---指定启动类,指定后在target下会多产生一个jar包->
<!-- <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
</transformer> -->
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>com/itextpdf/io/font/cmap</resource>
</transformer>
</transformers>
<artifactSet>
<!--排除的jar包,排除部分jar包不会打包到当前工程里-->
<excludes>
<exclude>org.slf4j:slf4j-api</exclude>
</excludes>
</artifactSet>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
<!-- 将依赖jar包拷贝到lib目录下,这个插件可以将依赖的jar包拷贝到target/lib目录下 -->
<!-- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin> -->
<!-- antrun -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>package</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<copy tofile="release/${project.artifactId}.jar" file="target/${project.artifactId}.jar"></copy>
</tasks>
</configuration>
</execution>
<execution>
<id>clean</id>
<phase>clean</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo message="clean release..." />
<delete dir="release"></delete>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>