Gradle项目中无法识别类路径

时间:2016-07-22 14:03:56

标签: java gradle

我在这里有一个项目分支,显示我的问题:

https://github.com/testerstories/lucid-core/tree/feature/build-full-archive

具体来说,如果我运行gradle build,那么当:lucid-junit:compileJava任务运行时,我会在LucidRunner中的唯一课程(src/main/java/com/lucidtester/junit/runners)上收到一系列错误:

package org.junit.runner.notification does not exist
import org.junit.runner.notification.RunNotifier;

package org.junit.runners does not exist
import org.junit.runners.BlockJUnit4ClassRunner;
                    ^
package org.junit.runners.model does not exist
import org.junit.runners.model.FrameworkMethod;
                          ^
package org.junit.runners.model does not exist
import org.junit.runners.model.InitializationError;

这似乎意味着JUnit没有得到认可。但是在IntelliJ中,我已经将JUnit添加到类路径中,编辑器肯定能够自动完成JUnit的各个方面。此外,在Project Explorer下的External Libraries树中,我看到JUnit4被列为库。

如果我通过运行此命令将构建限制到特定模块,则会发生同样的事情:

gradle :lucid-junit:build

此时,我完全不知道问题是什么。我只有一个最小的类,我的构建文件(在模块中)正在输入正确的依赖(对于junit)。此外,我在主subprojects文件中使用build.gradle

我不确定此时还要检查什么。 IDE中没有任何内容表示错误。我的Gradle构建文件中没有任何内容似乎产生错误。但似乎关于构建生命周期如何执行的东西似乎没有识别我的类路径。

更新

找到一些有趣的东西。如果我完全改变我的构建文件,IntelliJ会刷新所有内容。然后我发现我的外部库不再显示JUnit4。然后LucidRunner.java文件突然出现了一系列关于JUnit的错误。

所以我选择+输入并选择“将JUnit4添加到类路径”。

将JUnit4添加回外部库,我的错误就消失了。

但是gradle build命令仍然显示相同的错误。如果我再次更改构建文件,则情况相同。

我已经尝试过似乎是IntelliJ的“重启”答案:使缓存无效并重启,但这没有效果。

1 个答案:

答案 0 :(得分:0)

好吧,我似乎回答了我自己的问题。

在lucid-junit项目的build.gradle文件中,我有这个:

dependencies {
  compile "junit:junit:${junit_version}"
}

我要做的是在文件顶部添加一个空行。

我不知道为什么这很重要但是当我这样做时,突然间一切都有效。此外,有了这个空行,在我的外部库中,我现在看不到“JUnit4”,而是“Gradle:junit:junit:4.12”。

如果我删除了该初始空白行,则会再次出现问题。

同样,我不知道为什么会这样,但毫无疑问确实如此。

相关问题