了解你在maven中的依赖关系

时间:2010-02-23 09:29:59

标签: java eclipse maven-2

如果您使用的是封闭式存储库,但您的应用程序使用来自外部(maven公共)存储库的某些依赖项。

是否可以使用来自内部和外部存储库的依赖项生成列表。

或者我必须手动完成,只放置内部存储库以及我的构建失败的那些依赖项是外部的,或者您认为第三种方式可以更好地获得结果。谢谢

修改

@Pascal Thivent

这是交易:

让我们说我的项目只使用2个依赖项: 第一个是:junit 第二个是:速度

现在假设log4j是junit的传递依赖(这是我的项目使用的依赖项之一)。

并假设速度没有任何传递依赖。让我们想象一下,速度在我的公司存储库中,我知道junit是从maven资源库下载的,但我不知道log4j,因为我没有把它放在<dependecies>标签中。

有没有办法可以获得一个依赖项列表或者什么东西..它们会根据它们所处理的存储库或类似的东西对依赖项进行分组:

速度 - 企业存储库 junit - maven存储库 log4j - maven存储库

或者,如果我使用mirrorof指定明确使用公司存储库,maven会告诉我哪些工件我缺少,包括传递依赖项中的工件?

TNX

2 个答案:

答案 0 :(得分:6)

我会使用dependency:purge-local-repository来实现此目的,并分析控制台输出以查看依赖关系被重新恢复的位置。

如果最后您正在使用公司存储库并且想要强制Maven将其用于所有请求(即从不访问公共存储库),那么您应该将公司存储库声明为mirrorOf所有存储库你的settings.xml

<settings>
  ...
  <mirrors>
    <mirror>
      <id>corporate-repository</id>
      <mirrorOf>*</mirrorOf>
      <name>Maven Repository Manager running on repo.mycompany.com</name>
      <url>http://repo.mycompany.com/proxy</url>
    </mirror>
  </mirrors>
  ...
</settings>

但我可能在这里推断太多。

<强>更新

  

或者,如果我使用mirrorof指定明确使用公司存储库,maven会告诉我哪些工件我缺少,包括传递依赖项中的工件?

答案 1 :(得分:0)

我想您必须在公司存储库服务器上使用NexusArtifactory,以便根据需要将远程存储库中的工件透明地下载到您的公司存储库中。

如果你只想知道项目的传递依赖性,m2eclipse会给出一个依赖图,它的层次结构。