重新启动后,Intelli-J在编译之前显示没有错误,然后是100错误

时间:2015-06-29 12:24:06

标签: java intellij-idea

我正在尝试使用我的一位同事(目前正在休假)写的几个模块。我知道这些模块正在运行,因为我依赖它们的代码也在工作。

但是我的计算机在冻结之后不得不重新启动,现在当我进入我的代码时,一切都被破坏了,看来Intelli-J忘记了我的依赖。

经过大量的摆弄,我决定从git中重新检查所有内容,重新导入所有模块等等。但它没有帮助。

例如,“错误:(123,15)java:包MPD不存在”是我得到的一个错误,但我可以跳到调用MPD的行并“转到声明”并看到它就好了! Intelli-J知道源的位置,并且没有红色波浪线表示编辑器本身存在问题。

到底是怎么回事?我是否忘记了导入模块的一个步骤(我按照相同的方式导入它们,我想,并在编辑器说我需要的地方添加了它们的依赖项)。或者Intelli-J本身在重启后会以某种方式损坏?我怎样才能解决这个问题?我正在第2天敲打这个问题......

编辑:我目前从git结账时至少取得了一些进展。事实证明我的所有手动导入都错误地将源标记为“资源”。手动设置大多数模块以正确标记“源”已经让我更进一步。现在我只需弄明白为什么它不知道JUnit是什么了。 “错误:(3,1)java:package junit.framework不存在”。但是,有一些我还没有标注为源代码的软件包,所以可能会解决这个问题。

编辑:不,将所有内容正确标记为“来源”甚至“测试”都不会改变我的错误。我可以确认编辑器知道各种JUnit的来源,比如TestCase,但编译器发誓上下不存在。不同的错误,相同的味道。 JUnit引用其中一个模块,我可以确认,如果我从该模块的命令行执行“mvn install”,它编译就好了。

编辑:我可以在我的库列表中查看Junit 3.8.1和4.4,并且jar文件存在它应该的位置。

编辑:不同的Java版本(oracle 7 vs 1.7 open jdk)什么都不做。我也尝试将所有测试排除在编译之外(此时我很绝望),但我似乎不得不一次做一个并且有很多它们,所以我放弃了这个攻击角度。

编辑:使缓存无效并且重新启动什么都不做,仍然会收到JUnit错误。

编辑: 叹息我最后从编译中排除了每个基于JUnit的类。现在我已经走了一圈:“错误:(34,15)java:包MPD不存在”。因此将文件标记为源不是真正的修复,它只是延迟或隐藏编译错误。我用完了随机的东西试试......

编辑:我已经从轨道再次进行了修复,得到了我的项目的新副本,并将这些内容标记为使我超过第一个编译器错误的来源。这一次,我环顾了依赖列表,看到Junit被列为仅仅是“测试”而不是“编译”。好吧,我会在所有这几十个项目中将其标记为“编译”,看看会发生什么。它绝对是逐个摆脱Junit错误。

1 个答案:

答案 0 :(得分:0)

修改pom.xml最终让它运行起来。不确定之前到底是什么问题,但至少我知道JUNIT的怪异是因为我在“src / main / java”中将“src”标记为“source”,但是测试目录位于“src / main / test”中“,这让编译器感到困惑。