一、插件目标(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>