官方资料http://maven.apache.org/plugins/maven-dependency-plugin/
当项目很大时,如果将所有的依赖都打包到war包或jar包中,会导致这个文件很大,而很多情况下,依赖的库是不需要改变的。解决方法是将依赖的库放在单独的目录中,在执行java命令时,将它们加入到classpath。
插件的用法示例如下
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeScope>provided</excludeScope><!--如果<includeScope>与<excludeScope>同时出现,<excludeScope>将被忽略-->
<outputDirectory>${project.basedir}/target/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
需要注意的是,如果<includeScope>与<excludeScope>同时出现,<excludeScope>将被忽略
这个插件中的scope的含义与dependency中的scope含义是有差别的,比如<includeScope>compile</includeScope>是指包含compile、provided、system。 具体介绍看官方文档https://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html