我最近开始开发一个Spring MVC maven项目。从运行配置运行mvn eclipse:eclipse
命令后,所有maven依赖项都显示在项目外部,而不是在" Maven Dependencies"层次结构视图。当我将项目透视图从Java EE切换到Java时,依赖关系可以在Referenced Libararies
下找到。
我的.project和.classpath元数据文件内容。
有人知道如何在Maven Dependencies
视图下显示所有广告?
答案 0 :(得分:7)
我想,给出答案可能比写评论更好。
Maven Eclipse插件
假设您有以下项目目录:
/hello-world/
+-- src/
+-- pom.xml
现在,您在该目录中运行mvn eclipse:eclipse
eclipsify 。这将创建一些元文件:
/hello-world/
+-- src/
+-- pom.xml
+-- .project
+-- .classpath
.project
文件将包含带有语句
NO_M2ECLIPSE_SUPPORT:M2Eclipse不支持使用maven-eclipse-plugin创建的项目文件。
.classpath
将包含依赖项的条目,如下所示:
<classpathentry kind="var" path="M2_REPO/com/google/guava/guava/18.0/guava-18.0.jar" sourcepath="M2_REPO/com/google/guava/guava/18.0/guava-18.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/4.12/junit-4.12.jar" sourcepath="M2_REPO/junit/junit/4.12/junit-4.12-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar"/>
请注意,这些条目使用的是eclipse内部变量:M2_REPO
,它指向您当地的maven存储库。所有这些条目都是简单的库条目。与将库添加到构建路径时相同。
如果您现在通过“现有项目导入工作区”将其导入,您将完全获得您描述的项目。库是简单的类路径条目。并且 - 更重要的是 - 它没有maven性质(它缺少小“M”图标)。这在.project
文件中提到过。没有maven性质,你没有这个项目的一些有用和重要的功能。
Eclipse Maven插件
所以,让我们修复它。首先备份项目目录(如果出现任何问题)。
第一步是从eclipse中删除项目,而不是从硬盘中删除。所以只需在eclipse中删除它,但不要勾选“删除磁盘上的项目内容”。你还想拥有这个项目,不是吗?
步骤2:导航到项目目录并删除任何eclipse元文件(我已经告诉过你)。之后,您拥有与初始情况相同的项目目录。
步骤3:现在您可以使用“Existing Maven Projects”将此项目导入eclipse。浏览到包含项目的目录(可能是工作空间目录)并选择项目。
之后你会注意到这个项目现在具有maven性质。项目图标上有一个“M”图标。此外,您将在“Maven依赖关系”节点下看到所有库。
为什么会这样?让我们再看看元文件:
.project
文件现在还包含以下行(等等):
<buildCommand><name>org.eclipse.m2e.core.maven2Builder</name></buildCommand>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
.classpath
现在还有以下条目:
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
M2E插件现在正在完成其余的工作。容易,不是吗?
答案 1 :(得分:0)