[英]Classpath Not Recognized in Gradle Project
我在这里有一个项目分支来显示我的问题:
https://github.com/testerstories/lucid-core/tree/feature/build-full-archive
具体来说,如果我运行gradle build
,那么当:lucid-junit:compileJava
任务运行时,我在src/main/java/com/lucidtester/junit/runners
唯一类( LucidRunner
)上会收到一系列类似的错误:
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)。 此外,我在build.gradle
主文件中使用了subprojects
。
我不确定目前还需要检查什么。 IDE中没有任何内容表示错误。 我的Gradle构建文件中似乎没有任何东西会产生错误。 但是似乎有关构建生命周期如何执行的某些事情无法识别我的类路径。
更新
发现了一些有趣的东西。 如果我完全更改了构建文件,则IntelliJ会刷新所有内容。 然后,我发现我的外部库不再显示JUnit4。 然后,LucidRunner.java文件突然冒出了一系列有关JUnit的错误。
因此,我按Option + Enter并选择“将JUnit4添加到类路径”。
这将JUnit4添加回外部库,我的错误消失了。
但是gradle build
命令仍然显示相同的错误。 如果我再次更改构建文件,则情况相同。
我已经尝试了IntelliJ的“重新启动”答案:使缓存无效并重新启动,但这没有任何效果。
好吧,我似乎已经回答了我自己的问题。
在lucid-junit项目的build.gradle
文件中,我有以下内容:
dependencies {
compile "junit:junit:${junit_version}"
}
我要做的是在文件顶部添加一个空白行。
我不知道为什么这很重要,但是当我这样做时,所有突然的事情都会起作用。 此外,有了该空白行,在我的外部库中,我现在不仅看到“ JUnit4”,还看到了“ Gradle:junit:junit:4.12”。
如果我删除了最初的空白行,问题再次出现。
再说一次,我不知道为什么会这样,但是绝对没有疑问。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.