将所有的Maven依赖下载到不在版本库中的目录?
 我开始把我的项目转换为maven,因为我需要使用一个二进制forms的库,而不是maven,但是在我的头撞在墙上太久以后,我决定停止伤害自己,只是使用ant。 我只想让maven将jar和所有的传递依赖项下载到我select的目录中,这样我就可以像平时那样将它们检入到我的SCM中,并再次成为一个幸福的开发人员。 
 任何想法如何轻松做到这一点? 
maven依赖插件可以潜在地解决你的问题。
如果你有一个指定了所有项目依赖关系的pom ,那么你只需要运行mvn dependency:copy-dependencies就可以find包含所有依赖的target/dependencies文件夹,包括可传递的。 
创build一个ivy.xml文件来列出你的项目的依赖关系:
 <ivy-module version="2.0"> <info organisation="org.demo" module="demo"/> <configurations defaultconfmapping="default"/> <dependencies> <dependency org="commons-lang" name="commons-lang" rev="2.6"/> .. </dependencies> </ivy-module> 
下载这些jar子及其传递的依赖关系现在可以通过两种方式之一来完成。
命令行
常春藤可以作为命令行程序运行。 以下示例将下载到本地“lib”目录中:
 java -jar ivy-2.2.0.jar -ivy ivy.xml -retrieve "lib/[artifact].[ext]" 
ANT构build
常春藤是最好的使用时,集成到您的ANT构build。 以下示例目标将jar下载到本地lib目录,并生成HTML报告以进行依赖关系分析。
 <target name="retrieve" description="Retrieve dependencies locally"> <ivy:retrieve pattern="${lib.dir}/[artifact].[ext]"/> <ivy:report todir="${report.dir}" graph="false"/> </target> 
基于@Raghuram的答案,我find了复制项目依赖关系的教程,只是:
- 
打开你的项目 pom.xml文件,并find这个:<project> [...] <build> <plugins> ... </plugins> </build> [...] </project>
- 
将 <plugins> ... </plugins>replace为:<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> </plugins>
- 
并在命令行中调用maven mvn dependency:copy-dependencies
 完成后,它将在pom.xml所在的当前目录的所有jar target/dependency创build文件夹target/dependency 。 
我find了下一个命令
 mvn dependency:copy-dependencies -Dclassifier=sources 
这里maven.apache.org
 请检查${MAVEN_HOME}/conf目录中的某些configuration文件,如settings.xml 。 这些文件覆盖.m2文件夹中的设置,因此, .m2存储库文件夹可能不可见或被丢弃。