0

我正在关注一个很棒的教程:http://www.objectdb.com/tutorial/jpa/eclipse/spring/project

在复制 pom.xml 的代码后的第一步,我得到 9 个错误。这是我的 pom.xml 的第 1 行显示的错误:

Failure to transfer org.apache.maven.reporting:maven-reporting-api:jar:2.0.6 from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven.reporting:maven-reporting-api:jar:2.0.6 from/to central (http://repo.maven.apache.org/maven2): The operation was cancelled.   pom.xml /Guestbook  line 1  Maven Configuration Problem

如有必要,我可以发布其他错误。在此之前我尝试过运行一些简单的预制 maven 项目,我相信他们称它们为 archtypes。他们有类似的错误。我不明白为什么会发生这种情况,而且我无法得到一些不立即抛出错误的 hello world 东西。

4

2 回答 2

5

对伏都教编码说不。不要核弹.m2!

当 Maven 尝试为您的构建解决依赖关系时,它首先在本地存储库中查找,即 .m2/repository。如果它在那里找到它们,它将使用这些本地缓存的工件。如果工件在本地存储库中不存在,Maven 将尝试从它知道的远程存储库中解析它。开箱即用,它只知道 maven central。所以,它会去那里。

您遇到的场景有一个主要的并发症。如果给定的依赖项工件是 SNAPSHOT 工件,那么您将需要偶尔检查该工件的新版本,因为 SNAPSHOT 名称表明它当前正在开发中并且可能会经常更改。为了处理这个问题,Maven 被构建为每天在远程存储库中检查一次它在本地存储库中拥有的任何 SNAPSHOT 工件的更新版本。

此外,如果它试图在远程存储库中找到一个工件并出现某种故障——通常是由于网络相关问题可能是暂时的或永久性的(网络速度慢或代理设置)——这也将在本地存储库元数据。与 SNAPSHOT 解决方案一样,此故障将作为给定工件的状态持续 24 小时。

要覆盖 Maven 的 24 小时政策,您不必核对本地存储库。您只需将 -U 标志传递给它,这会导致它“更新”所有本地工件状态,即它将出去并重新检查远程存储库中的所有内容(除了成功解决的发布工件 - 发布应该是永久性的)它知道关于。

所以,试试:

mvn -U install

不是,

rm -Rf .m2
于 2013-01-13T19:31:07.873 回答
0

在 Eclipse 中,右键单击您的项目名称,选择弹出菜单:Maven->Update Project。在下面的对话框中,勾选“ Force Update of Snapshots/Releases ”,点击“OK”。然后maven会重新下载需要的依赖。无论如何,这解决了我的问题。强制性升级

于 2017-01-17T10:27:11.983 回答