Maven项目在Eclipse中未被视为Java
我正在做一个有很多不同Maven项目的项目。我已经在这些项目上做了一系列JUnit测试,通常进展顺利。我打开Eclipse,右键单击PackageExplorer->Import。。。现有的Maven项目,我可以很好地导入该项目。我可以构建,深入到src/test/java。。。右键单击该文件并执行runasjunit测试。不过,时不时地,我无法让它发挥作用。如果我右键单击以运行方式,我得到的只是AspectJ/Java应用程序。没有JUnit测试Maven项目在Eclipse中未被视为Java,eclipse,maven,junit,aspectj,Eclipse,Maven,Junit,Aspectj,我正在做一个有很多不同Maven项目的项目。我已经在这些项目上做了一系列JUnit测试,通常进展顺利。我打开Eclipse,右键单击PackageExplorer->Import。。。现有的Maven项目,我可以很好地导入该项目。我可以构建,深入到src/test/java。。。右键单击该文件并执行runasjunit测试。不过,时不时地,我无法让它发挥作用。如果我右键单击以运行方式,我得到的只是AspectJ/Java应用程序。没有JUnit测试 我注意到项目文件夹旁边的图标只有一个M和一个文
我注意到项目文件夹旁边的图标只有一个M和一个文件夹图标,而对于工作的项目,有一个文件夹M和一个AJ。我还注意到,它似乎不像普通Java项目那样将文件排序到它们的包中。似乎它没有将该项目视为AspectJ项目。如何让Eclipse将这个Maven项目识别为Java项目?检查
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>
org.codehaus.mojo
这取决于属性(如果您使用的是Java EE),我建议您右键单击项目属性,查看为您的项目定义的方面。右键单击项目->属性项目方面,然后选择适用于您的案例的所有方面(例如Java).我和一位同事谈过,我能够“解决”这个问题。我从Eclipse(而不是从磁盘)中删除并立即重新导入Maven,现在它神奇地工作了
如果pom.xml有错误,尤其是父版本错误,那么maven项目似乎无法正确导入/创建。一旦我修复了POM中的问题,该项目将构建得很好,没有任何问题,但它仍然只是一个Maven项目。一旦我将其删除并重新导入,它就会将其视为Maven/AspectJ项目。我面临同样的问题,下面的步骤解决了我的问题:
1-打开有问题项目的pom.xml
2-在overview选项卡中,检查工件/打包设置
3-如果设置为“pom”,则将其更改为“jar”
4-保存更改,然后仅从eclipse中删除项目并重新导入
希望有帮助 一些现有的答案应该有效,但是那些建议添加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>
你的项目名
org.eclipse.jdt.core.javabuilder
org.eclipse.m2e.core.maven2Builder
org.eclipse.jdt.core.javanature
org.eclipse.m2e.core.maven2Nature
注意不同的资本化(javabuilder但maven2Builder,javanature但maven2Nature)
一旦保存,它将自动重新生成。您可能需要手动添加任何源文件夹(Project properties
->Java构建路径
->source
选项卡->添加文件夹…
我遇到了同样的问题(将pom.xml导入eclipse后,该项目没有被视为Java项目,只有“maven Project builder”)在ProjectBuilders属性中,但在EclipseLuna中没有“JavaBuilder”)
删除“.settings”文件夹和“.project”文件后重新导入maven项目无效。
在工作区切换对我有效后重新导入。将创建必要的.project文件,这些文件将向项目添加java特性和其他属性。我的五美分。。。
在我的例子中,我总是“丢失”项目的“Java”性质,因为pom文件被设置为“打包为ear”。但是没有错误或警告消息,这将是一件好事。只要我将包更改为“jar”,我就可以将项目的性质设置为Java,并且它会被持久化。我还尝试了我描述的所有方法仅修改.project是不够的,因为maven库将不用于构建项目,并且项目构建将失败。mvn eclipse:eclipse将在不实际使用m2e的情况下创建一个长而无用的.classpath
最简单的方法是创建一个新的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>
在这种情况下,使用facets不是一个选项,因为对于facets,Eclipse不使用m2e和maven依赖项。同样,使用facets的依赖项必须手动管理
我用Eclipse4.6.2Neon尝试了所有这一切。有两种方法可以实现这一点
1) 通过改变项目的性质。
右键单击项目->属性->项目性质,然后选择适用于您案例的所有性质(例如java)
(或)
2) 通过更新.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>