Eclipse中maven项目空心J和缺失Maven Dependencies目录解决笔记

一 maven项目导入eclipse java文件为空心的J

导致这个如要是因为.project文件缺失或者里面缺少对应的编译信息。eclipse中以.开头的文件是默认过滤不显示的,下面截图是展示如何去掉这个过滤

Paste_Image.png

去掉.*resources选项


Paste_Image.png

这里有很多方法可以解决这个问题:

  • 使用mven update迫使eclipse重新编译当前项目使其产生缺失的.project文件。
  • 同上面方法使用各种方式使其eclipse重新编译当前项目从而达到更新.project文件。
  • 总结以上方法最终就是去改变.project文件或者生成.project文件,这里我个人最直接的做法是直接修改.project。添加或者替换如下代码(请对照原始.project文件差哪部分就对应添加那部分,更新后刷新项目即可):
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>project name</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
</projectDescription>

二 maven项目缺失Maven Dependencies目录处理

这个问题也是比较坑的一个问题,本来想写着代码唱着歌结果打开项目突然依赖目录不见了 哎。这个问题也有很多方法解决:

  • 打开本来是maven项目的工程但是eclipse没有在项目文件上标注是maven项目:
    1通过eclipse项目菜单把项目转换为maven项目,如下图右键需要转换的项目选择configure里面子菜单转换为maven项目:
Paste_Image.png

2 用过maven命令(前提是你的环境配置了maven并且能使用mvn命令),到你的项目中使用
mvn eclipse:eclipse命令转换项目为一个eclipse能解读的mven项目。
3 右键项目选择maven菜单中enable maven nature或者老版本eclipse中的Enable Dependency Management。
*另外一种就是eclipse显示是一个maven项目但是死活就是没有依赖目录
1 第一次和上面第三种方法一样先选择disable maven...然后再enable。
2 根据上面这些方法了解到主要是操作的项目中的.classpath文件,所以这个方法就是直接修改.classpath方法,添加或者修改.classpath文件为(修改方式同修改.project一样,如果修改后项目的目录结构和classpathentry配置的有出入的请对应修改,如果缺少某个目录可以在build path中添加):

Paste_Image.png
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src/main/java"/>
    <classpathentry kind="src" path="src/main/resources"/>
    <classpathentry kind="src" path="src/test/java"/>
    <classpathentry kind="src" path="src/test/resources"/>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="output" path="target/classes"/>
</classpath>

以上为个人总结和看法,如有更好的方式请留言共同学习进步。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容