Maven:在向POM添加依赖项后更新存储库的命令


256

我在POM中添加了新的依赖项。

我可以运行一个简单的命令将此依赖项下载到我的存储库中吗?


对于那些正在寻找如何在Spring Boot项目中执行此操作的人:用于mvnw调用包装器层。此页面上的命令可以使用它。
G_V

Answers:


178

mvn install(或mvn package)将始终有效。

您可以mvn compile用来下载编译时间相关性,也可以下载编译时间mvn test和测试相关性,但是我更喜欢始终有效的东西。


2
谢谢,我还发现将其添加到STS的pom中会自动为您下载。
JJ180 2011年

15
@Andrew Spencer的回复更准确- mvn dependency:xxx仅处理依赖项,不做任何其他事情-问题就在这里。
botchniaque'6

有时,“ mvn软件包”可能不会更新依赖项。我经历了不止一次。在这种情况下,一个人需要运行“ MVN依赖:解决”
Binita Bharati

1
@BinitaBharati,您可以在Maven命令行中添加-U以强制进行依赖项下载。如果Maven由于缓存超时而没有下载更新的依赖项,这将很有用。
BamaPookie

1
@Kishan提出一个新问题。显示项目的布局(尤其是import发生的地方)以及是否使用多模块构建。
亚伦·迪古拉

611

如果你想下载不依赖别人做任何事情,那么它的:

mvn dependency:resolve

或下载单个依赖项:

mvn dependency:get -Dartifact=groupId:artifactId:version

如果需要从特定的存储库下载,可以使用 -DrepoUrl=...


2
运行该命令时出现此错误:[错误]无法在项目独立pom上执行目标org.apache.maven.plugins:maven-dependency-plugin:2.1:get(default-cli):参数'repositoryUrl'对于目标org.apache.maven.plugins:maven-dependency-plugin:2.1:get丢失或无效-> [帮助1]。指定-DrepositoryUrl = ...不起作用。
Chry Cheng 2012年

1
我想我已经找到了解决方案。该参数应该是“ repoUrl”,而不是“ repositoryUrl”。
Chry Cheng

不能为我解决问题:我mvn package -o马上就运行了-我收到无法下载插件的错误。运行mvn dependency:resolve-plugins也不能完全解决问题。
Innokenty

您的存储库URL可能丢失/错误。无论如何,我都不认为这个答案可以解决您遇到的问题。这个答案涵盖了Maven可以在配置的存储库中找到所需的所有工件的情况。
安德鲁·斯宾塞

我不在乎您是否是信徒,是否是基督徒……上帝保佑您这个很棒的简单答案。
SalathielGenèse,

12

我知道这是一个老问题了,但是对于使用 under Maven插件的用户,您有两个选择:EclipseWindows

  1. 如果您将Maven安装为独立应用程序:

    您可以CMD在项目路径下使用以下命令:

    mvn eclipse:eclipse

    根据pom.xml文件中的依赖性,它将使用所有缺少的jar更新您的存储库。

  2. 如果尚未将Maven作为独立应用程序安装,则可以在Eclipse上执行以下步骤:

    右键单击project-> Run As-> Run configurations

    然后选择mavenBuild

    然后单击new按钮创建所选类型的配置。单击“浏览”工作区,然后选择您的项目并在目标中指定eclipse:eclipse

您可以参考如何运行命令mvn eclipse:eclipse以获得更多详细信息。


3
在dependency:resolve之后运行eclipse:eclipse可以帮助我查看eclipse中下载的jar,谢谢!
Anatoly Yakimchuk

2
尽管此答案将有助于穷人使用Eclipse,但我强烈建议任何使用Eclipse的人找到更好的选择。特别是如果您要使用Maven。Netbeans和IntelliJ遥遥领先。
64BitBob

@ 64BitBob假设Netbeans和IntelliJ比Eclipse更好,我们应该始终为使用它的人提供解决方案。:)
cнŝdk

我看到该插件在市场上不再可用,但是可以在Eclipse 2020中运行而无需下载任何内容。我想知道mvn eclipse:eclipse是否是当我们右键单击-> Maven->更新项目...时eclipse本身发送的命令
Paolo

@Paolo在我看来,他们已在新版本的Eclipse中自动添加了该插件,是的,我认为它与“ Update project”选项后面的命令相同。
cнŝdk

1

请注意您的依赖范围,我遇到的问题是,当我通过Intellij调用clean编译时,会下载pom,但不会下载jar。创建了一个xxx.jar.lastUpdated文件。然后意识到依赖关系范围已经过测试,但是我正在触发编译。我删除了存储库,并触发了mvn测试,问题已解决。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.