我有一个 Maven 项目导入到 Eclipse Oxygen 中。 Eclipse 报告没有编译问题(Alt + F5
)。当我从命令行运行 Maven 时,我得到
[ERROR] /home/dean/src/TAP3UIs/TAP3Desktop/src/main/java/com/ms/tap3/controller/RequestAccessController.java:[8,30] package com.google.common.base does not exist
该包确实存在于我的 guava-15.0.jar 中的 .m2/repository 中。我还可以在 Eclipse mvn 依赖项中看到它。当我检查mvn dependency:tree
对于我看到的项目
[INFO] | | | +- com.google.guava:guava:jar:15.0:runtime
它是对命令行的运行时传递依赖,这解释了为什么它不能在命令行上编译。不知何故,Eclipse 将传递依赖从运行时转变为编译。
有谁知道为什么会发生这种情况以及我如何使 Eclipse m2e 尊重传递依赖项的范围?
目前,既没有JDT nor m2e支持每个项目的多个类路径,这是支持不同范围所需的。
See: Eclipse bug 486035 - 不同范围的不同类路径容器
Update:
自 Eclipse Photon (4.8)这是 2018 年 6 月发布的现在支持. See Eclipse 错误 526858 and 我的视频展示了这一点的实际效果.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)