一 maven项目导入eclipse java文件为空心的J
导致这个如要是因为.project文件缺失或者里面缺少对应的编译信息。eclipse中以.开头的文件是默认过滤不显示的,下面截图是展示如何去掉这个过滤
去掉.*resources选项
这里有很多方法可以解决这个问题:
- 使用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项目:
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中添加):
<?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>
以上为个人总结和看法,如有更好的方式请留言共同学习进步。