【问题标题】:Issues with maven project running in eclipse, not recognized as Java project在 Eclipse 中运行的 maven 项目的问题,不被识别为 Java 项目
【发布时间】:2017-11-26 11:32:52
【问题描述】:

我已将一个现有的 maven 项目导入 Eclipse。我尝试为 JUnit 测试设置配置,但我的项目不会作为可测试项目出现。当我手动输入项目名称时,我收到消息:

指定的项目不是java项目

我还注意到,在键入代码并尝试调用方法时,例如“System.out”当我输入句号时会弹出一条消息,说:

此编译单元不在 java 项目的构建路径上

此外,当我右键单击项目并导航到构建路径时,没有可用的操作。

在这里和其他地方查看了这一点,我遵循了以下建议,但没有成功:

我已经验证了 .project 和 .classpath 文件的存在

我查看了 .project 文件并验证了是否包含 javanature

我已经运行 mvn eclipse:eclipse

我已在 PackageExplorer > Maven > 更新项目配置中右键单击该项目

Java 没有被列为项目方面,但我不确定我应该搞砸它,因为我尝试点击它,这导致整个项目充满错误(我认为与构建路径有关,但记不太清了)。删除 Java 作为一个方面并没有消除错误,我不得不从头开始重新导入项目。

抱歉,如有任何含糊之处,感谢您的帮助。

我正在使用 m2eclipse。

编辑:只需从我的工作区中删除项目,删除所有 .project、.classpath 文件和 .settings 文件夹,然后重新导入,即可解决问题。我不知道为什么它第一次没有工作。

【问题讨论】:

  • 你试过发出命令mvn eclipse:eclipse吗?
  • 我提到我试过maven eclipse:eclipse。它无法构建(尽管它之前已经成功)并给我这个消息:“错误构建 POM(可能不是这个项目的 POM)。项目 ID:org.glassfish:maven-glassfish-plugin 原因:POM 'org.glassfish:在存储库中找不到 maven-glassfish-plugin':无法从任何存储库下载工件”
  • 请将您的修复作为答案发布,而不是编辑您的原始问题。

标签: java eclipse maven buildpath


【解决方案1】:

我已经运行 mvn eclipse:eclipse
我已经在 PackageExplorer > Maven > 更新 项目配置

这两者应该是互斥的。您可以使用eclipse:eclipse 从外部管理项目,也可以使用m2eclipse 从内部管理项目。不要混合它们。

问题的可能原因:

包装是POM(也许这是多模块项目的根,在这种情况下你必须导入模块项目)。 m2eclipse 不会将 Java 特性添加到 POM 项目中(eclipse:eclipse 也不会,顺便说一句)

【讨论】:

  • 确保在执行 'mvn eclipse:eclipse' 后刷新 Eclipse 中的项目。
  • 5 年过去了,它仍然对我有帮助。你是天才
  • 我今天再次使用了这个建议,它完美地解决了这个问题:) 谢谢
【解决方案2】:

确保您的 Eclipse 中有 M2 插件,您的系统中安装了 Maven 2.7 以上版本。

在那次运行之后 mvn eclipse:clean 然后 mvn eclipse:eclipse

.classpath.project 将在您的项目文件夹中创建。 一切都应该没问题。

【讨论】:

    【解决方案3】:

    请关注以下网站.. 右键单击项目,转到“属性”,然后选择“项目构面”。这会将其转换为 java/动态 web 项目以供使用。

    【讨论】:

      【解决方案4】:

      我正在使用 版本:Indigo Service Release 2 内部版本号:20120216-1857

      我还发现,在我安装 Maven 插件后,“项目资源管理器” - 右键单击​​“我的项目”并没有列出选项“Maven”或“配置”。

      阅读上述内容后,我尝试在“Package Explorer”上执行相同的操作,令我惊讶的是它成功了。现在“Project Explorer”也可以使用了!

      【讨论】:

      • WTF。这实际上有效。 :) +1。使用它,我可以获得 Maven 运行选项。但是,项目仍然没有被识别为java项目,不得不重新导入。
      【解决方案5】:

      我遇到了同样的问题。就我而言,我正在检查一个包含多个(父/子)pom 的 Maven 项目。

      如果您的存储库/分支中的最高级别 Maven 项目只是管理子 pom,它可能根本不包含 Java 定义。您需要在 Eclipse 中将这些子项目作为独立项目打开。

      您可以通过右键单击您的项目 -> 导入 -> Maven -> 现有 Maven 项目 -> 然后选择您要更改的子项目来执行此操作。

      【讨论】:

        【解决方案6】:

        根据您拥有的 Eclipse 版本,从 Eclipse Marketplace 安装 m2e 和 subclipse。那么:

        1. 打开 Eclipse 转到 Window > Open Perspective > Other... > SVN Repository Exploring
        2. 将您的 svn url 添加到 SVN 存储库/代码库。
        3. 选择一个项目。右键单击并选择Checkout
        4. 假设你的项目有一个 pom.xml,切换回你的 Java 透视图,选择刚刚导入的项目,右键选择Configure > Convert to Maven Project

        它现在应该被识别为 Maven 和 Java 项目(Maven 和 Java 特性将被添加到 Eclipse .project 文件中)

        【讨论】:

          【解决方案7】:

          只需从我的工作区中删除项目,删除所有 .project、.classpath 文件和 .settings 文件夹,然后重新导入即可解决问题。我不知道为什么它第一次没有工作。谢谢大家的帮助。

          【讨论】:

            【解决方案8】:

            右键项目 --> 属性 --> maven --> 生命周期映射 --> 检查 (skip maven compiler plugin) 点击 ok 现在构建路径出现。 nw 进行必要的更改

            【讨论】:

              【解决方案9】:

              我陷入了类似的情况,但我意识到,由于我试图更改父集合,你找不到 eclipse intellisense,因为它只是持有项目。尝试处理由 maven 创建的独家项目。

              【讨论】:

                【解决方案10】:

                检查 pom.xml 文件中的打包标签。

                当我将 pom.xml 更改为使用时,它起作用了:

                <packaging>jar</packaging>
                

                【讨论】:

                  【解决方案11】:

                  确保 POM 没有任何错误,Eclipse 根据初始构建(自动或手动)检测项目类型。

                  【讨论】:

                    【解决方案12】:

                    项目性质由 Eclipse 中的 .project 文件决定,该文件还向 Eclipse 规定了父源代码和测试文件夹。

                    如下更新/修改 .project 文件,我们使用它来保留项目的 Maven 兼容性和 Java 特性。

                    Eclipse Project文件夹下的.project.xml

                    <?xml version="1.0" encoding="UTF-8"?>
                    <projectDescription>
                            <name>java-cgdk-en</name>
                            <comment></comment>
                            <projects>
                            </projects>
                            <buildSpec>
                                    <buildCommand>
                                            <name>org.eclipse.jdt.core.javabuilder</name>
                                            <arguments>
                                            </arguments>
                                    </buildCommand>
                            </buildSpec>  
                            <natures>
                                    <nature>org.eclipse.jdt.core.javanature</nature>
                            </natures>
                    </projectDescription>
                    

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2012-02-12
                      • 1970-01-01
                      • 2011-10-23
                      • 1970-01-01
                      • 2012-07-13
                      • 2011-07-17
                      相关资源
                      最近更新 更多