一、插件目標(goal)
1、analyze:分析項目依賴,確定哪些是已使用已聲明的,哪些是已使用未聲明的,哪些是未使用已聲明的
2、analyze-dep-mgt:分析項目依賴,列出已解析的依賴項與dependencyManagement中定義的依賴項不匹配的部分
3、analyze-report:生成項目報告
4、analyze-duplicate:分析pom.xml中的<dependencies/>和<dependencyManagement/>標記,確定重復聲明的依賴項
5、build-classpath:告訴Maven以類路徑格式從本地存儲庫輸出依賴項的路徑
6、copy:將配置在插件中的jar包復制到指定位置
7、copy-dependencies:將項目pom文件中定義的所有依賴及其傳遞依賴復制到指定位置
8、display-ancestors:顯示項目所有祖先pom
8、get:從遠程庫中解析出一個構件
9、go-offline:讓maven解決該項目所依賴的所有內容,以准備脫機
10、list:resolve的別名,列出項目的所有依賴項
11、list-repositores:顯示項目所有依賴項目,然后列出使用的存儲庫
12、properties:包含文件系統上的工件的每個項目依賴項設置一個屬性
13、purge-local-repository:清除本地存儲庫中的依賴
14、resolve:告訴Maven解析所有依賴項並顯示版本。JAVA 9注意: 在使用Java 9運行時將顯示模塊名稱。
15、resolve-plugins:告訴Maven解決插件及其依賴項
16、sources:告訴Maven解析所有依賴項及其源附件、並顯示版本
17、tree:顯示該項目的依賴關系樹
18、unpack:解壓縮
19、unpack-dependencies:與copy-dependencies功能一致,只是會解壓
二、使用舉例
1、復制特定的構件(jar包)
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.1</version> <executions> <execution> <id>copy</id> <phase>package</phase> <goals> <goal>copy</goal> </goals> </execution> </executions> <configuration> <artifactItems> <artifactItem> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <type>jar</type> <overWrite>false</overWrite> <!-- jar包的存放位置 --> <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory> <!--給jar包取別名 --> <destFileName>optional-new-name.jar</destFileName> </artifactItem> </artifactItems> <outputDirectory>${project.build.directory}/wars</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>true</overWriteSnapshots> </configuration> </plugin>
2、復制所有的依賴jar包到指定位置
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.1</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <!-- jar包存放位置 --> <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin>
若是以命令行執行,則改為以下配置:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.1</version> <configuration> <artifactItems> <artifactItem> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <type>jar</type> <overWrite>false</overWrite> <outputDirectory>target/sources</outputDirectory> <destFileName>34.jar</destFileName> <includes>**/*.class,**/*.xml</includes> <excludes>**/*test.class</excludes> </artifactItem> </artifactItems> <!-- other configurations here --> </configuration> </plugin>
3、解壓所有依賴項
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.1</version> <executions> <execution> <id>unpack-dependencies</id> <phase>package</phase> <goals> <goal>unpack-dependencies</goal> </goals> <configuration> <includes>**/*.class</includes> <excludes>**/*.properties</excludes> <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>true</overWriteSnapshots> </configuration> </execution> </executions> </plugin>