eclipse - 为什么Eclipse会把maven运行时依赖变成编译依赖?

标签 eclipse maven m2eclipse

我有一个导入到 Eclipse Oxygen 中的 Maven 项目。 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 dependencies 中看到它。当我检查项目的 mvn dependency:tree 时,我看到了

[信息] | | | +- com.google.guava:guava:jar:15.0:runtime

它是对命令行的运行时传递依赖,这解释了为什么它不能在命令行上编译。 Eclipse 以某种方式将传递依赖从运行时转变为编译。

有谁知道为什么会发生这种情况以及我如何使 Eclispe m2e 遵守传递依赖项的范围?

最佳答案

目前,JDT也不m2e支持每个项目的多个类路径,这是支持不同范围所必需的。

参见:Eclipse bug 486035 - Different classpath containers for different scopes

更新:

自 2018 年 6 月发布的 Eclipse Photon (4.8)以来,现已支持。参见 Eclipse bug 526858my video showing this in action .

关于eclipse - 为什么Eclipse会把maven运行时依赖变成编译依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47491373/

相关文章:

eclipse - 如何在eclipse Juno内安装activiti "Create deployment artifacts "选项

java - 在 Eclipse 中找不到 Maven 选项

java - 是否有推荐的 Team Explorer Everywhere for Eclipse/Java Development 替代品?

eclipse - Eclipse 部署程序集丢失 Maven 依赖项是否有永久修复?

eclipse - Eclipse 中的 Maven/AJDT 项目

java - eclipse可以模拟用户输入吗?

oracle - “xmlparserv2”(v12.2.0.1)中的 “com.oracle.jdbc:ojdbc8”突然损坏了吗?

java - Selenium WebDriver 可以在没有 System.setProperty(驱动程序路径)的情况下工作吗?

Maven:依赖出现在有效的pom中但不在依赖树中

eclipse - 设置TestNG eclipse插件的输出目录