Maven jar 依赖项显示在“Maven Dependencies”视图之外
Maven jar dependencies are displayed outside `Maven Dependencies` view
我最近开始开发一个Spring MVC maven 项目。在我从 运行 配置中发出 运行 mvn eclipse:eclipse
命令后,所有 Maven 依赖项都显示在项目外部,而不是在 "Maven Dependencies" 层次结构视图下。当我将项目视角从 Java EE 切换到 Java 时,会在 Referenced Libararies
.
下找到依赖项
我的 .project and .classpath 元数据文件内容。
有人知道如何在 Maven Dependencies
视图下显示所有 jar 吗?
@Lucky 关闭日食。从命令提示符执行 eclipse:clean 并将项目导入为 Maven 项目..(假设您在 eclipse 中安装了 maven 插件)。我认为这会以所需的方式显示它。
我想,给出答案可能比写评论更好。
Maven Eclipse 插件
假设您有以下项目目录:
/hello-world/
+-- src/
+-- pom.xml
你现在运行那个目录里面的mvn eclipse:eclipse
要eclipsify它。这将创建一些元文件:
/hello-world/
+-- src/
+-- pom.xml
+-- .project
+-- .classpath
.project
文件将包含带有语句
的注释行
NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
.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 存储库。毕竟这些条目都是简单的库条目。与将库添加到构建路径时得到的相同。
如果您现在通过 "Existing Projects into Workspace" 导入它,您将完全获得您描述的项目。库是简单的 类路径条目 。而且 - 更重要的是 - 它没有专家性质(它缺少 "M" 小图标)。 .project
文件中提到了这一点。没有 Maven 特性,您将无法获得此项目的一些有用且重要的功能。
Eclipse Maven 插件
所以,让我们修复它。先备份工程目录(以防万一)
第一步是从 eclipse 中删除项目,而不是从硬盘中删除。所以干脆在eclipse中删除,但是不要勾选"Delete project contents on disk"。你还想拥有这个项目,是吗?
第 2 步:导航到项目目录并删除任何 eclipse 元文件(我已经告诉过您)。之后你的项目目录和初始情况一样。
第 3 步:现在您可以使用 "Existing Maven Projects" 将此项目导入到 eclipse 中。浏览到包含您的项目的目录(可能是工作区目录)和 select 您的项目。
之后您会注意到该项目现在具有 maven 性质。项目图标处有一个小 "M" 图标。此外,您将在 "Maven Dependencies" 节点下看到所有库。
为什么会这样?让我们再看看元文件:
.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 插件现在正在完成剩下的工作。很简单,不是吗?
我最近开始开发一个Spring MVC maven 项目。在我从 运行 配置中发出 运行 mvn eclipse:eclipse
命令后,所有 Maven 依赖项都显示在项目外部,而不是在 "Maven Dependencies" 层次结构视图下。当我将项目视角从 Java EE 切换到 Java 时,会在 Referenced Libararies
.
我的 .project and .classpath 元数据文件内容。
有人知道如何在 Maven Dependencies
视图下显示所有 jar 吗?
@Lucky 关闭日食。从命令提示符执行 eclipse:clean 并将项目导入为 Maven 项目..(假设您在 eclipse 中安装了 maven 插件)。我认为这会以所需的方式显示它。
我想,给出答案可能比写评论更好。
Maven Eclipse 插件
假设您有以下项目目录:
/hello-world/
+-- src/
+-- pom.xml
你现在运行那个目录里面的mvn eclipse:eclipse
要eclipsify它。这将创建一些元文件:
/hello-world/
+-- src/
+-- pom.xml
+-- .project
+-- .classpath
.project
文件将包含带有语句
NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.
.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 存储库。毕竟这些条目都是简单的库条目。与将库添加到构建路径时得到的相同。
如果您现在通过 "Existing Projects into Workspace" 导入它,您将完全获得您描述的项目。库是简单的 类路径条目 。而且 - 更重要的是 - 它没有专家性质(它缺少 "M" 小图标)。 .project
文件中提到了这一点。没有 Maven 特性,您将无法获得此项目的一些有用且重要的功能。
Eclipse Maven 插件
所以,让我们修复它。先备份工程目录(以防万一)
第一步是从 eclipse 中删除项目,而不是从硬盘中删除。所以干脆在eclipse中删除,但是不要勾选"Delete project contents on disk"。你还想拥有这个项目,是吗?
第 2 步:导航到项目目录并删除任何 eclipse 元文件(我已经告诉过您)。之后你的项目目录和初始情况一样。
第 3 步:现在您可以使用 "Existing Maven Projects" 将此项目导入到 eclipse 中。浏览到包含您的项目的目录(可能是工作区目录)和 select 您的项目。
之后您会注意到该项目现在具有 maven 性质。项目图标处有一个小 "M" 图标。此外,您将在 "Maven Dependencies" 节点下看到所有库。
为什么会这样?让我们再看看元文件:
.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 插件现在正在完成剩下的工作。很简单,不是吗?