eclipse导入已存在的maven工程,代码目录结构异常的问题解决
Posted On 2015年11月20日
有时候经常碰到在eclipse导入已存在的maven工程,代码目录结构异常的问题。
例如我有一个maven工程, 别人从scm checkout 出来后,导入到eclipse发生此问题。 具体的发生情景无法判断,但根本原因是和eclipse 是有直接关系的。 但实际因为我们使用maven, eclipse 里展示的工程出现一堆xx错误和异常的classpath目录结构还是让人非常崩溃。 就连好好的 cross reference 浏览代码都不行了。
根本原因是和 eclipse在工程目录下创建的 classpath 内容错误。 但是为什么错误,以及是否是eclipse的bug还无法具体定位。
解决方法就是直接修改 .classpath
1. 例如我一个工程如下目录
myproject -> -> src ->main -> java -> resources ->test -> java -> resources -> target -> pom.xml
如此, main/java , test/java , main/resource , test/resource 只是将src(都是源代码或者源代码相关的文件) 按照类型区分放到不同的src目录下。 便于我们理清楚我们的代码结构。 至于编译后,我们放入的位置可以是同一个位置。 (即, 编译前 src的里的代码都是放在不同的子目录下, 但是编译出来仍然可能都存在于 target/classes 里。 )
2. 如果发生异常,则我们手动修改 .classpath , 具体情况可以根据情况进行变更和修改。
<classpathentry kind="src" including="**/*.java" output="target/classes" path="src/main/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry kind="src" including="**/*.java" output="target/test-classes" path="src/test/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry kind="src" output="target/classes" path="src/main/resources"> </classpathentry> <classpathentry kind="src" output="target/test-classes" path="src/test/resources"> </classpathentry>
此篇文章已被阅读2570 次