Eclipse编译错误引用使用阴影的maven项目

时间:2015-07-24 22:12:19

标签: eclipse maven maven-shade-plugin

我有一个使用Shade plugin的Maven项目A(第三方)。我有另一个项目B依赖它并引用一些阴影类。如果我打开了两个项目,则存在编译错误,因为Eclipse无法找到这些类,因为它们不存在于A / target / classes中。

我是否有一个很好的方法来设置Eclipse,以便B查看项目A的类的.m2,而不仅仅是A / target?

1 个答案:

答案 0 :(得分:0)

声明A的阴影依赖关系作为B与scope provided的直接依赖关系应该可以解决问题:

  

范围:

     

提供 - 这很像编译,但表示您希望JDK或容器在运行时提供它。它仅在编译和测试类路径中可用,并且不可传递。

由于您有"大约50个项目" ,引入新的POM继承级别可能是个好主意:

  • 你的顶级POM
    • 项目A.
      • 新POM将着色的依赖项声明为provided
        • B之类的项目依赖于A的阴影依赖
    • 50 POMs of grey