Maven项目在Eclipse中没有被视为Java

Fur*_*rge 21 eclipse junit aspectj maven

我正在开发一个有很多不同Maven项目的项目.我一直在对这些项目进行一系列JUnit测试,通常这很顺利.我打开Eclipse,右键单击包资源管理器 - >导入...现有的Maven项目,我可以很好地导入项目.我可以构建,深入到src/test/java ...右键单击该文件并执行Run As JUnit测试.不时,我不能让这个工作.如果我右键单击以执行运行方式,我得到的只是AspectJ/Java应用程序.没有JUnit测试.

我注意到项目文件夹旁边的图标只有一个M和一个文件夹图标,而对于有效的项目,有一个文件夹,M和一个AJ.我也注意到它似乎没有像普通的Java项目那样将文件排序到它们的包中.看起来它并没有将项目视为AspectJ项目.如何让Eclipse将这个Maven项目识别为Java项目?

Amo*_*ter 36

现有的几个答案应该有效,但那些建议添加Java方面的人只有在你的项目已经(或者你想将它转换为)分面的性质pom.xml时才会起作用,并且建议你改变你的意愿的那个只有你工作然后将您的项目重新导入为maven项目.

如果你想"修复"你现有的项目,即添加Java性质而不将其转换为分面形式而不删除和重新导入,只需编辑你的.project文件(外部,或者在eclipse中使用Navigator视图,因为它赢了不会出现在你的包浏览器中)并将java builder和java nature添加到现有的maven builder/nature中:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>yourprojectname</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <!-- add this build command -->
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <!-- this would've already been there -->
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <!-- add this nature -->
        <nature>org.eclipse.jdt.core.javanature</nature>
        <!-- this would've already been there -->
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
    </natures>
</projectDescription>
Run Code Online (Sandbox Code Playgroud)

注意不同的大小写(javabuilder但maven2Builder,javanature但maven2Nature).

保存后,应立即重新构建.您可能必须手动添加任何源文件夹(Project properties- > Java Build Path- > Source选项卡 - > Add Folder....

  • 我发现只是删除.project文件并重新导入poms也修复了这个 - 我无法弄清楚它是如何进入这种糟糕状态的. (2认同)
  • @demongolem:当然,我的建议不会解决“您和您的导入”可能存在的任何构建问题。(这是一个完全独立的问题,这就是为什么我提出了一个单独的问题。)它将做的是将 Java 性质添加到以前不被识别为 Java 项目的项目中。显然,一旦 Eclipse 尝试重新构建它,您可能需要做其他事情才能使其无错误地构建,而且显然,如果您的项目之前根本没有构建并且在您添加 Java 特性之后构建,您必须解决任何构建错误。我的回答从来没有假装为你解决这些问题...... (2认同)

fmu*_*car 13

右键单击Project- > Properties- > Project Facets,然后选择适用于您的案例的所有方面(例如java).

  • 我的项目(作为 Maven 项目导入并转换为分面项目)只有 Javascript 和静态 Web 模块选项 - 没有 Java 方面。知道为什么 Java 方面可能会丢失吗?我正在使用 Oxygen.2 Release (4.7.2)。谢谢。 (2认同)

小智 8

mvn eclipse:eclipse将创建必要的.project文件,这将为项目添加java性质和其他属性


Ram*_*ami 5

我遇到了同样的问题,下面的步骤在我的情况下解决了这个问题:

1- 打开有问题的项目的 pom.xml。

2 - 在概览选项卡中,检查工件/包装设置。

3-如果设置为“pom”,请将其更改为“jar”。

4- 保存更改,然后仅从 Eclipse 中删除项目并重新导入。

希望有帮助!


Ric*_*ish 1

检查pom.xml文件中是否有未获得 AspectJ 性质的项目(项目上的 AJ)。他们是否缺少 AspectJ-Maven 插件?他们应该有一个像这样的部分:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>aspectj-maven-plugin</artifactId>
    <executions>
      <execution>
        <goals>
          <!-- use this goal to weave all your main classes -->
          <goal>compile</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <complianceLevel>1.6</complianceLevel>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

另外看看他的问题:Maven/AJDT project in Eclipse