Maven 编译器无法解析导入

Maven compiler cannot resolve import

我正在尝试使用 maven 和 tycho 构建多个 eclipse 产品。我目前遇到一个问题,其中 Bundle A 依赖于 Bundle B 中的 class。 Bundle B 的包结构类似于:

a.b.c.d.e.f.Class

当我现在尝试构建 A 时,我得到一个看起来有点像这样的编译错误:

 import a.b.c.d.e.f.MyClass;
[ERROR] ^^^^^^^^^
[ERROR] The import a.b.c.d.e cannot be resolved

如果你仔细观察,你会发现 Maven 显然试图解析错误的包,因为它只声明它无法解析 a.b.c.d.e 而要导入的 class 实际上在a.b.c.d.e.f.

此外,a.b.c.d.e 中没有 class。我试过将 a.b.c.d.e 作为清单中的导出包包括在内,并将其从该列表中删除,但都没有帮助。

这可能是什么问题?

在 运行 具有非常详细日志记录的 maven 之后,我仔细检查了参数,maven (tycho) 在编译 Bundle A 时传递给了 JDT 编译器。我注意到,它只传递了一个 JAR我添加到 Bundle B 的类路径中。

然后我注意到,在 Bundle B 的 MANIFEST 中,我指定了 Bundle-Classpath,类路径上只有 JAR。我之前认为捆绑包本身的 类 会默认添加,但在将 ,. 添加到 Bundle-Classpath 属性 之后,构建再次运行。

如果您想阅读更多相关信息,THIS POST 为我指明了正确的方向。