Maven將所有依賴打成一個jar包
阿新 • • 發佈:2019-01-07
需求
將專案依賴的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>