2011-07-07 67 views
3

我刚和同事一起工作了半个小时,想弄清楚为什么当他(从完全相同的来源工作)做不到的时候,我可以建立一个项目。我知道,关于Maven的故事有一个共同的开始。无论如何,事实证明,我们对org.apache.commons:commons-pool之类的东西有依赖性,而我们指出的回购仅提供了commons-pool:commons-pool。我们都忽略了很长一段时间的差异,直到我们终于抓住了。我一定能够“看到”前者,而他显然不能。我怎么知道Maven从哪里得到了一件神器?

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

奖金问题:如果它只显示在本地缓存中,有什么方法可以告诉它如何到达那里?我可以告诉Maven“这一次,确保您在构建中使用的所有内容都可以从我的远程回购中获得”?

+1

如果您只想重新载入所有内容,则存在依赖关系:purge-local-repository。否则,我会考虑重命名您的本地回购并创建一个新的空的回购。然后,如果您遇到问题,您仍然可以让您的当地老人了解您错过的内容。虽然我不是专家! –

+0

每个工件应具有关联的校验和文件。确保它们匹配。否则,只需擦除该依赖项的本地回购,然后重试。 – Steven

+0

你是否正在分享镜子?如果不是,你应该吗?如果是这样,你是如何得到正确的瓶子,而不被装入镜子? –

回答

2

也许你的settings.xml中有你的朋友没有的版本库。

爱德的Staub说,你可以尝试通过执行清除本地存储库:

mvn dependency:purge-local-repository 

之后试图通过运行下载所有项目的依赖关系:

mvn dependency:go-offline 

现在,如果你有一个最后一个目标的问题说它无法找到例如工件org.apache.commons:commons-pool,您可以尝试找到它的存储库去http://www.mvnbrowser.com并搜索此工件,然后在结果页面上,您可以选择标签存储库,以查看您可以在哪里找到此工件(例如JBoss maven回购)。如果您尝试下载的依赖

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

然后:

得到神器组ID,版本,你可以添加它位于哪里到项目通过将当前内容到您的pom.xml库后现在它应该再次运作。

mvn dependency:go-offline 
+0

那么这个问题的答案是什么?我如何看待X:Y如何被带入该项目?我需要看到它是父母,它的父母看到什么项目现在带来的jar,因为我需要排除一个导致问题的jar。 –

相关问题