我在这里有一个项目分支,显示我的问题:
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的“重启”答案:使缓存无效并重启,但这没有效果。
答案 0 :(得分:0)
好吧,我似乎回答了我自己的问题。
在lucid-junit项目的build.gradle
文件中,我有这个:
dependencies {
compile "junit:junit:${junit_version}"
}
我要做的是在文件顶部添加一个空行。
我不知道为什么这很重要但是当我这样做时,突然间一切都有效。此外,有了这个空行,在我的外部库中,我现在看不到“JUnit4”,而是“Gradle:junit:junit:4.12”。
如果我删除了该初始空白行,则会再次出现问题。
同样,我不知道为什么会这样,但毫无疑问确实如此。