我正在开发一个有很多不同Maven项目的项目。我一直在对这些项目进行一系列JUnit测试,通常这很顺利。我打开Eclipse,右键单击包explorer->导入...现有的Maven项目,我能够很好地导入项目。我可以构建,深入到src / test / java ...右键单击该文件并执行Run As JUnit测试。不时,我不能让这个工作。如果我右键单击以执行运行方式,我得到的只是AspectJ / Java应用程序。没有JUnit测试。
我注意到项目文件夹旁边的图标只有一个M和一个文件夹图标,而对于有效的项目,有一个文件夹,M和一个AJ。我也注意到它似乎没有像普通的Java项目那样将文件排序到它们的包中。看起来它并没有将项目视为AspectJ项目。如何让Eclipse将这个Maven项目识别为Java项目?
答案 0 :(得分:33)
现有的几个答案应该有效,但那些建议添加Java facet的人只有在你的项目已经(或者你想将其转换为)分面的性质时才会起作用,而那个建议你改变你的{{ 1}}只有在您将项目重新导入为maven项目时才会起作用。
如果您想“修复”现有项目,即添加Java性质而不将其转换为分面形式而不删除和重新导入,只需编辑pom.xml
文件(外部或使用eclipse中的Navigator视图,因为它不会显示在您的包浏览器中)并将java builder和java nature添加到现有的maven builder / nature中:
.project
注意不同的大小写(javabuilder但是maven2Builder,javanature但是maven2Nature)。
保存后,应自动重新构建。您可能需要手动添加任何源文件夹(<?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>
- &gt; Project properties
- &gt; Java Build Path
标签 - &gt; Source
。
答案 1 :(得分:12)
右键点击Project
- &gt; Properties
- &gt; Project Facets
,然后选择适用于您案例的所有方面(例如java)。
答案 2 :(得分:6)
mvn eclipse:eclipse 将创建必要的.project文件,这些文件将添加java nature&amp;项目的其他属性
答案 3 :(得分:4)
这取决于Eclipse project facet属性(如果您使用的是Java EE),我建议您右键单击项目属性并查看为项目定义的方面。
答案 4 :(得分:4)
我遇到了同样的问题,下面的步骤解决了我的问题:
1-打开有问题项目的pom.xml。
2 - 在Overview选项卡中,检查Artifact / Packaging设置。
3-如果设置为“pom”,请将其更改为“jar”。
4-保存更改,然后仅从eclipse中删除项目并重新导入。
希望有所帮助!
答案 5 :(得分:3)
我面临同样的问题(在将pom.xml导入eclipse之后,该项目不被视为java版本,并且项目构建器属性中只有“maven项目构建器”,但在eclipse中没有“java builder”) luna的。
删除“.settings”文件夹和“.project”文件后重新导入maven项目不起作用。 在工作区切换为我工作后重新导入。
答案 6 :(得分: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>
另请查看他的问题:Maven/AJDT project in Eclipse
答案 7 :(得分:1)
我和一位同事交谈过,我能够“解决”这个问题。我从Eclipse中删除了(而不是从磁盘中删除)并立即重新执行了Maven导入,现在它神奇地工作了。
似乎pom.xml出现错误,特别是如果父版本错误,maven项目无法正确导入/创建。一旦我解决了POM中的问题,项目就可以很好地构建而没有任何问题,但它仍然只是一个Maven项目。一旦我删除它并重新导入它,那么它将它视为Maven / AspectJ项目。
答案 8 :(得分:1)
我知道这个问题是很久以前的...
我只是通过以下两个步骤解决了这个问题。
答案 9 :(得分:0)
我的五美分...... 在我的情况下,我失去了&#39;始终是Java&#39;项目的性质,因为pom文件被设置为&#39; package as ear&#39;。没有错误或警告消息,这将是很好的。一旦我将包装改为&#39; jar&#39;我可以将项目的性质设置为Java并且它是持久的。
答案 10 :(得分:0)
我也尝试过这个帖子中描述的所有方法。仅修改.project是不够的,因为maven库不会用于构建项目,项目构建将失败。 mvn eclipse:eclipse会创建一个长而无用的.classpath而不会实际使用m2e。
最简单的方法是创建一个新的java项目,将其转换为Maven项目并打开这个新项目的.project和.classpath。然后对导入的Maven项目进行类似的更改。
已经描述了.project文件的重要更改,但是为了在Eclipse中使用Maven依赖项,这样的内容应该在.classpath文件中
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
在这种情况下,使用facet不是一个选项,因为使用facet Eclipse不使用m2e和maven依赖项。同样,必须手动管理与facet的依赖关系。
我用Eclipse 4.6.2 Neon尝试了所有这些。
答案 11 :(得分:0)
有两种方法可以实现。
1)通过更改项目性质。 右键单击“项目”->“属性”->“项目性质”,然后选择适用于您的案例的所有性质(例如Java)。
(OR)
2)通过更新.project文件并添加项目所需的所有性质。该.project文件位于项目的根文件夹中。如果由于某种原因该文件不存在,请创建一个新文件,并根据需要添加每种性质的部分,例如,如下所示。
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>yourprojectName</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
答案 12 :(得分:0)
我有同样的问题。就我而言,这是蚀工作区中的一些缺陷。我重新创建了它(删除了.metadata目录),并解决了该问题。
答案 13 :(得分:0)
如果您已在.project上尝试过Amos M. Carpenter的解决方案,但无法使用,请转到Project-> Properties-> Project Nature并添加... Java,Apply和Close按钮。