我怎样才能知道Maven从哪里得到一件神器?

时间:2011-07-07 16:23:55

标签: maven nexus

我花了半个小时和一位同事一起工作,弄清楚为什么我可以建立一个项目,而他(从完全相同的来源工作)却不能。我知道,关于Maven的故事常见的开始。无论如何,事实证明我们依赖于org.apache.commons:commons-pool之类的东西,而我们指向的repo只提供了commons-pool:commons-pool。在我们终于流行起来之前,我们都很长时间忽略了差异。我一定能够“看到”前者,而他显然不能。

所以我的问题是:我怎么能问Maven“你从哪里得到X:Y?”

奖金问题:如果它只出现在本地缓存中,有没有办法告诉它是如何到达那里的?我可以告诉Maven“只需要一次,确保您在构建中使用的所有内容也可以通过我的远程仓库获取”吗?

1 个答案:

答案 0 :(得分:2)

也许你的settings.xml上有你的朋友没有的存储库。

正如Ed Staub所说,您可以通过执行以下命令来尝试清理本地存储库:

mvn dependency:purge-local-repository

之后尝试运行以下命令下载所有项目依赖项:

mvn dependency:go-offline

现在,如果您遇到上一个目标的问题,说它无法找到例如工件org.apache.commons:commons-pool,您可以尝试找到它的存储库转到http://www.mvnbrowser.com并搜索此工件,然后在结果页面您可以选择选项卡存储库以查看您可以在哪里找到此工件(例如JBoss maven repo)。

获取工件组,id,版本后,您可以通过将当前内容添加到pom.xml中来将存储库添加到项目中:

<repositories>
<repository>
<id>repository.jboss.org-public</id>
<name>JBoss repository</name>
<url>https://repository.jboss.org/nexus/content/groups/public</url>
</repository>
</repositories>

然后,如果您尝试再次下载依赖项,它现在应该可以工作。

mvn dependency:go-offline