如何解释依赖路径?

时间:2012-05-01 20:55:48

标签: maven jar dependency-management

我收到以下错误。 “依赖之路”是指什么,为什么有3个位置?

我几乎没有Maven的经历。

Missing:
----------
1) com.sun.jmx:jmxri:jar:1.2.1

  Try downloading the file manually from the project website.

  Then, install it using the command:
      mvn install:install-file -DgroupId=com.sun.jmx -DartifactId=jmxri -Dversion=1.2.1 -Dpackaging=jar -Dfile=/path/to/file

  Alternatively, if you host your own repository you can deploy the file there:
      mvn deploy:deploy-file -DgroupId=com.sun.jmx -DartifactId=jmxri -Dversion=1.2.1 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]

  Path to dependency:
        1) com.services:Common:jar:1.0.0.0
        2) log4j:log4j:jar:1.2.15
        3) com.sun.jmx:jmxri:jar:1.2.1

2 个答案:

答案 0 :(得分:2)

Common需要Log4J。 Log4J需要JMX。有三个“位置”,因为这是依赖路径的长度。依赖是路径(或多或少)“是什么让我想要这个库?”

(但它没有;升级或降级你的Log4J依赖 - IIRC已在1.2.16中修复,并且在1.2.mumble之前不存在。)

答案 1 :(得分:0)

此依赖项路径类似于异常的堆栈跟踪。它说什么依赖项的传递导致错误。 Log4j案例实际上是某种特定的。他们在1.2.15版本中搞砸了它的依赖关系,实际上需要的不仅仅是它真正需要的。老实说,你能做的最好的事情就是使用1.2.16版本,这个版本过去依赖于确实需要的库。

来自Sun Java时代的jmxri工件存在许可问题。这就是为什么到目前为止,这些东西在公共Maven存储库中不可用。