今天再使用CVS的时候,小组成员都碰见"This compilation unit is not on the build path of a Java Project"这个错误。
这个错误是在check out工程吼,使用"."操作来自动不全代码的时候发生的。
经过一番baidu + google 也没有找出解决方案。 不过已经把问题锁定再Eclipse工程描述文件上(工程根目录下的.project文件)。
于是我重新创建了2两个工程(假定为工程A, 工程B), 在A工程中添加一个类文件. B工程保持不变。然后将B工程下的".project"文件copy到A工程下,覆盖掉A工程的".project"文件。
此时在A工程中编写代码的时候就会碰见"This compilation unit is not on the build path of a Java Project"这个错误。
但是分别打开两个工程的.project文件没有发现有什么不同。但是在Eclipse中会出错。
好了,到现在终于找到了问题的原因了。 但是该如何解决这个问题呢。
下面介绍一下我的解决方法:
1. 删除本机上的工程[删除前先确定所有文件已经提交到了代码服务器上].
2. 从CVS服务器导入工程: File -> Import project -> 选择CVS下的Project from CVS -> Next ....(后面根据向导提示导入工程就行了)。
3. ok ~~ 打开刚才导入的工程,问题解决了!!! ^_^...
高兴之余,以后要如何避免此错误的发生呢?
CVS服务器是架设在我的电脑上的,我对CVS中部署的工程细细的检查了一下,发现在工程的目录下有一个.project文件。
此时终于知道问题的元凶是谁了,开发人员由于check out了错误的.project文件导致了这个错误。
那么避免该错误的方法就显而易见了,不去checkout服务器上的.project文件(未经测试,只是个人推断,具体问题需要具体分析)。
原因可能二:
使用maven 管理项目时候 用eclipse 导入后 项目的目录如下图 :
从图左边的项目目录结构可以看出minerva-protals 是下面这几个项目的父模块名称 如果在这个地方打开某个子模块src下面的java类进行编辑是就会出现上面的错误 原因 暂且不明。
我们在用shirt+alt+s+r 打开资源的时候会出现好多java类由于这里出现的java类中也包含了父模块中某个子模块src下的类 所以导致我们进错了模块 而出现问题 我们在找java类的时候应该用 shift+alt+t 来找 这里面显示的都是能够编译的ava类。