Luc*_*cky 5 java eclipse spring maven m2e
我最近开始开发一个Spring MVC maven项目.mvn eclipse:eclipse从运行配置运行命令后,所有maven依赖项都显示在项目外部,而不是"Maven Dependencies"层次结构视图下.当我从Java EE将项目透视图切换到Java时,可以在下面找到依赖项Referenced Libararies.

我的.project和.classpath元数据文件内容.
有人知道如何在Maven Dependencies视图下显示所有的罐子吗?
我想,给出答案可能比写评论更好.
Maven Eclipse插件
假设您有以下项目目录:
/hello-world/
+-- src/
+-- pom.xml
Run Code Online (Sandbox Code Playgroud)
你现在mvn eclipse:eclipse在该目录中运行一个eclipsify它.这将创建一些元文件:
/hello-world/
+-- src/
+-- pom.xml
+-- .project
+-- .classpath
Run Code Online (Sandbox Code Playgroud)
该.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"/>
Run Code Online (Sandbox Code Playgroud)
请注意,这些条目使用的是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>
Run Code Online (Sandbox Code Playgroud)
在.classpath现在还具有以下条目:
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
Run Code Online (Sandbox Code Playgroud)
M2E插件现在正在完成其余的工作.容易,不是吗?
| 归档时间: |
|
| 查看次数: |
1038 次 |
| 最近记录: |