Maven父层次结构+ dependencyManagement不可传递?

时间:2014-09-03 14:18:23

标签: java maven

我认为父母的依赖管理是否具有传递性? 从来没有在文档中明确地看到这一点,但对我来说这似乎很明显......

以下是我所拥有的:

+-----------------------+
| Parent 1              |
|-----------------------|
| dependencyManagement: |
|   lib1: 1.0.0         |
+-----------------------+
            ^
            |
            |
+-----------+-----------+
| Parent 2              |
|-----------------------|
| dependencyManagement: |
|   lib2: 1.0.0         |
+-----------------------+
            ^
            |
+-----------+-----------+
| Project A             |
|-----------------------|
| dependencies:         |
|   lib1                |
|   lib2                |
+-----------------------+

当我尝试安装项目A时,我得到:

[ERROR]     'dependencies.dependency.version' for lib1-digester:jar is missing. @ line XX, column YY

我还尝试使用导入范围在父级2 的dependencyManagement中添加父级1 条目,但没有成功。

我的项目A 如何让其所有父级层次结构管理版本?

3 个答案:

答案 0 :(得分:2)

阅读Maven Docs后,您似乎是对的。

  

通常,这些项目的所有依赖项都在项目中使用,项目从其父项或其依赖项继承的任何依赖项都是如此。

答案 1 :(得分:2)

尝试更新到最新版本的Maven 3. IIRC,dependencyManagement元素的继承存在一些错误。

答案 2 :(得分:2)

A与其他空项目做了一个小例子,一切都很顺利...... 最后,有一些奇怪的事情,这就是发生的事情。 我实际上更喜欢那样:

+-----------------------+
| Parent 1              |
|-----------------------|
| dependencyManagement: |<----------------------+
|   lib1: 1.0.0         |                       |
+-----------------------+                       |
            ^                                   |
            |                     +-------------+------------+
            |                     | Project B                |
+-----------+-----------+         |--------------------------|
| Parent 2              |         | dependencies:            |
|-----------------------|         |   somethingWrong: 1.0.0  |
| dependencyManagement: |         +--------------------------+
|   lib2: 1.0.0         |
+-----------------------+
            ^
            |
+-----------+-----------+
| Project A             |
|-----------------------|
| dependencies:         |
|   lib1                |
|   lib2                |
+-----------------------+

Project B 的pom.xml出错 它不会对我的问题产生任何影响,但纠正无关的 pom解决了我的问题......

抱歉浪费时间