在 Maven 中成功构建仍然在 Eclipse 中显示错误

Posted

技术标签:

【中文标题】在 Maven 中成功构建仍然在 Eclipse 中显示错误【英文标题】:Successful build in Maven still showing errors in Eclipse 【发布时间】:2012-06-17 07:52:40 【问题描述】:

我在这里遇到了一些很奇怪的事情,当我键入“mvn clean install”时,我的构建在 maven 中成功,但是一旦导入 Eclipse,它就会显示错误。

自己看看:

我想从 `pom.xml 中排除石英解决了这个问题,但我想知道为什么。


PS:这里是pom.xml,如果你想看的话:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.nantes.mpclient</groupId>
  <artifactId>MyClient</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>MyClient</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.nantes.mp</groupId>
        <artifactId>MyEjb</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.jbossas</groupId>
        <artifactId>jboss-as-client</artifactId>
        <version>5.1.0.GA</version>
        <type>pom</type>
    </dependency>
  </dependencies>
</project>

###编辑 如您所见,石英在这里:

【问题讨论】:

在命令行中尝试mvn dependency:tree 并检查石英依赖项的来源。如果它包含传递性,您可以在本地 maven 存储库中找到它吗? 所需版本在我的 m2 内:/ 哦,你是对的,我没有注意到:对不起。无论如何,我跳了 maven 舞^^,但最终问题出在 m2e 使用的是 maven 的嵌入版本而不是我的。 我刚刚注意到你已经找到原因并删除了我之前关于不同石英版本的评论。 遇到了同样的问题,***.com/a/35932455/3724636救了我 【参考方案1】:

在导入 maven 项目后更新它已经为我解决了这个问题:

右键项目 --> Maven --> 更新项目。

【讨论】:

谢谢这对我有帮助:) 工作得很好......! 此外,在所有项目上运行 maven-update-project 之后,有时我必须在我们的核心库上执行 maven-update-project。奇怪的是,按照这个顺序,这两个步骤都是必需的。我遇到的错误是“ 无法解析为类型”,但它应该可以很好地解决。 赢家,鸡肉晚餐! @Eldosa 这应该是问题的答案!【参考方案2】:

有时我也会遇到这类问题。

一般来说,Eclipse 和 Maven 最适合我的是什么:

使用最新的 m2e Eclipse 插件 使用 Maven 3 确保 m2e 使用的 Maven 版本与您在命令行上使用的版本相同(不是内部版本) 将项目导入为 Maven 项目以生成 Eclipse 项目文件

【讨论】:

我很尴尬 xD m2e 没有使用我的 maven 版本。它被设置为“嵌入式”。我添加了 maven 安装的路径,现在它可以工作了。【参考方案3】:

其他赞成的答案对我使用这些版本不起作用:

日蚀霓虹灯 Maven 3 m2e 1.7

这是我必须做的:

    从 Eclipse 界面删除 Eclipse 项目(不要删除磁盘上的项目内容) 在文件资源管理器或终端中转到项目的根目录 删除这些文件:.classpath.project.settings 目录 返回 Eclipse,文件 -> 导入... -> Maven -> 现有的 Maven 项目

【讨论】:

【参考方案4】:

如果您在 Eclipse 项目中没有看到任何错误,但它一直在您的项目名称上显示红色图标。试试mvn eclipse:eclipse

然后选择Eclipse中的所有项目,右键> Maven > 更新项目

希望对您有所帮助。

【讨论】:

【参考方案5】:

你应该试试mvn eclipse:eclipse

然后确保M2_REPO 变量指向您的本地存储库。

【讨论】:

我正在使用 m2e,所以我不需要做 eclipse:eclipse @Eildosa 你好像没有quartz-1.5.2.jar。所以把这个依赖添加到你的pom.xml中,再试一次。 如果我的 pom.xml 中没有石英,那么 Eclipse 不应该寻找它。如果它是传递依赖,它会下载它。 你节省了我的时间。探索了许多选择。但这是最终的:) 不要做 eclipse:eclipse,它会在构建路径中创建一堆文件。【参考方案6】:

有时 maven 更新也不是以上所有的工作。 所以检查哪个 import 语句给你错误,然后去特定的 lib 文件,通常在 c:user/ur-PC-NAME/.m2 进入包删除那个 .jar 文件。

然后在eclipse中,右键项目> maven > update maven。

【讨论】:

我发现同样的事情发生在我身上。有一个 .jar 作为“提供”的范围包含在我的本地存储库中,但 Eclipse 没有检测到它。我做了一个 Maven “更新项目”,但它仍然无法正常工作。我能够从命令行 maven 构建项目。为了解决这个问题,我按照你的建议做了,只是在我的 Maven 本地存储库中删除(或重命名)带有 .jar 的文件夹,然后更新并再次构建,Eclipse 将其拾取。 @atom88,是的,有些时候 Eclipse 无法接收到它。很好,它解决了你的问题。 @ShamanthRamesh,它有效,我使用的是 Eclipse 2020-09,请记住取消选中 clean project 复选框【参考方案7】:

有时 m2e“维护”的 eclipse 项目与 POM 中的实际项目不同步(有很多原因)。假设你使用的是 m2e 0.8 或更高版本,右键单击项目,在 Maven 下,有两个通常有用的条目。它们是更新依赖和更新项目配置

试一试,在你点击后稍等片刻,让 Eclipse 更新项目并构建。通常它可以解决类似的问题。

【讨论】:

没用:/我想我只是要排除它(必须是来自 jboss 作为客户端的传递依赖),因为我尝试了一切......【参考方案8】:

当 m2eclipse 没有更新构建路径以对应于修改后的 POM 文件的内容时,通常会发生这种情况。 Maven 上下文菜单中有一个条目用于更新配置。

【讨论】:

@Eldosa - 是的......但它可能对其他人有用。【参考方案9】:

就我而言,

    我刚刚从 Eclipse 中删除了项目(未勾选要删除的复选框 从项目位置)。

    再次将项目打开为“现有 Maven 项目”。

它解决了我的问题。

【讨论】:

【参考方案10】:

我发现我的项目正在使用一个项目特定的 Java 编译器设置为 Java 1.5。此外,当 Maven、m2e、Eclipse 通用 Java 编译器设置都设置为 Java 1.8 时,项目方面仍然引用 Java 1.5。

【讨论】:

这通常由“从 Maven POM 更新项目”进行调整,但并非总是如此。很高兴看到库路径中使用的 JRE 得到警报。【参考方案11】:

在我的情况下,Java 构建路径也存在如下问题: “构建路径指定执行环境J2SE-1.5。工作空间中没有安装与此环境严格兼容的JRE。”修复此解决的编译错误。

【讨论】:

【参考方案12】:

您有一个库 (quartz-1.5.2.jar) 引用您的 m2 本地存储库,如果您只是从构建路径中删除石英并在内部更新您的依赖项(在 Eclipse 中),则该库不存在解决问题

【讨论】:

【参考方案13】:

尝试使用不同/旧版本的 JRE。在我的情况下,从 JRE8 切换回 JRE7 消除了这个问题。

【讨论】:

【参考方案14】:

在eclipse中删除并重新导入项目(当然不删除文件)。与其他答案不同,我没有研究为什么会发生这种情况,但它确实有效。 poof - 编译错误消失了

【讨论】:

这仍然不能解决我的问题,使用 Eclipse Neon【参考方案15】:

它可能会有所帮助:升级 eclipse 或更改它或类似的东西后,旧的 eclipse 特定文件(.classpath、.project 和 .settings)可能与新版本的 eclipse 不兼容。因此,您可能必须使用 Maven 重新生成此 Eclipse 特定文件。所以在你的 Eclipse 项目根目录中试试这个

mvn eclipse:eclipse

【讨论】:

【参考方案16】:

在我的情况下,在我更改 pom.xml 中的某些版本的依赖项后,eclipse 开始显示所有错误,但是命令行 mvn clean install build 成功

    我删除了我从 .m2 存储库中手动更改的依赖项的文件夹(在我的情况下,所有内容都在 org.apache.beam 下),因为我也有损坏的依赖项问题。 mvn clean build 项目,这里再次下载了依赖项 右键项目:maven -> 更新项目 从 Eclipse 中删除项目(但不是从磁盘中)并重新导入(这实际上给我留下了 1 个错误,然后我再次删除并重新导入)

【讨论】:

【参考方案17】:

转到 Eclipse> 项目(菜单)> 清理...> 选择要清理的项目

这也会从 Eclipse 中删除无效错误。

【讨论】:

【参考方案18】:

对我来说,右键单击项目 --> Maven --> 更新项目并勾选“强制更新快照/发布”工作。

【讨论】:

【参考方案19】:

有时,eclipse 的验证会导致这些错误。 您可以通过转到菜单>窗口>首选项>验证来禁用它们,然后取消选中暂停所有验证器或为构建一个一个地禁用它们。 例如,每次您构建项目时,eclipse 都不会验证您的文件,也不会显示这些错误。

【讨论】:

【参考方案20】:

这对我有用

    从 Eclipse 界面删除 Eclipse 项目(不要删除 项目内容在磁盘上) 转到项目的根目录 文件浏览器或终端 删除这些文件:.classpath、.project、 和 .settings 目录 返回 Eclipse,文件 -> 导入... -> Maven -> 现有的 Maven 项目

【讨论】:

以上是关于在 Maven 中成功构建仍然在 Eclipse 中显示错误的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse构建战争成功,但Maven命令canot

项目管理和构建十分钟教程,eclipse配置maven + 创建maven项目

Maven知识 %Eclipse%

在 Maven 配置文件中使用带有 plexus-compiler-eclipse 插件的 JAXB

maven插件存储在哪里

Android Maven Eclipse 仍然无法导入 apklib