我开始将我的项目转换为maven,因为我需要使用一个仅以二进制形式分发的库而不是maven,但是在我的头撞到墙上太长时间之后我决定不再伤害自己并且只使用Ant。我想让maven将jar及其所有传递依赖项下载到我选择的目录中,这样我就可以像往常一样将它们检查到我的SCM中,并再次成为一个幸福的开发者。
任何想法如何轻松地做到这一点?
答案 0 :(得分:234)
maven dependency plugin可以解决您的问题。
如果您指定了所有项目依赖项的pom
,那么您需要做的就是运行
mvn dependency:copy-dependencies
你会发现target/dependencies
文件夹中包含所有依赖项,包括transitive。
添加Gustavo's answer from below:要下载依赖项来源,您可以使用
mvn dependency:copy-dependencies -Dclassifier=sources
答案 1 :(得分:6)
根据@Raghuram回答,我找到Copying project dependencies的教程,Just:
打开您的项目pom.xml
文件并找到:
<project>
[...]
<build>
<plugins>
...
</plugins>
</build>
[...]
</project>
将<plugins> ... </plugins>
替换为:
<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>
并在命令行mvn dependency:copy-dependencies
完成后,它会在target/dependency
所在的当前目录的所有jar
依赖项中创建文件夹pom.xml
。
答案 2 :(得分:6)
我终于想出了如何使用Maven。在Eclipse中,创建一个新的Maven项目。
下载Maven,解压缩档案,将/bin
文件夹添加到路径。
通过运行mvn -v
从命令行验证安装(将打印版本和java安装路径)
切换到项目根文件夹(pom.xml
所在的位置)并运行:
mvn dependency:copy-dependencies
所有jar文件都会下载到/target/dependency
。
设置另一个输出目录:
mvn dependency:copy-dependencies -DoutputDirectory="c:\temp"
现在可以通过更改pom.xml来重复使用此Maven项目进行所有依赖项下载
通过构建路径将jar添加到java项目 - &gt;配置构建路径 - &gt;库 - &gt;添加JAR ..
答案 3 :(得分:3)
答案 4 :(得分:1)
请检查${MAVEN_HOME}/conf
目录中是否有settings.xml
目录中的某些配置文件。
这些文件会覆盖.m2
文件夹中的设置,因此,.m2
中的存储库文件夹可能不会被显示或丢弃。