使用Gradle时无法推断Groovy类路径

23

我有一个简单的Gradle项目:

apply plugin: 'groovy'
apply plugin: 'application'

mainClassName = 'HelloWorld'

src/main/groovy 中有一个 Groovy 源文件:

Translated: With one Groovy source file in `src/main/groovy`:
public class HelloWorld {
    public static void main(String[] args) {
        print "hello world"
    }
}

我输入gradle run并出现以下错误:

FAILURE: Build failed with an exception.

* What went wrong:
Cannot infer Groovy class path because no Groovy Jar was found on class path: [/Users/jzwolak/files/experimenting/gradle/groovy-project/build/classes/java/main]

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED in 0s
1 actionable task: 1 executed

我该如何为Gradle配置Groovy的类路径?

我已经将Groovy放置在 /usr/local/opt/groovy/libexec/ 下。


我在使用Gradle 7.2时遇到了这个问题。我的解决方法是将所有的testCompile替换为testImplementation:"在Gradle 7+中,已移除compile和testCompile配置。您可以使用implementation和testImplementation代替。" (https://intellij-support.jetbrains.com/hc/en-us/community/posts/4403048541330-Could-not-find-method-testCompile-for-arguments-group-junit-name-junit-version-4-12-on-object-of-type-org-gradle-api-internal-artifacts-dsl-dependencies-DefaultDependencyHandler-) - bshacklett
1个回答

24

1
没有这个依赖项,Groovy插件有用吗?我不明白为什么插件不会已经包含依赖项。 - Jason
你看过文档了吗?插件会添加哪个版本的Groovy?如果想要升级怎么办?如果想要降级呢?不,如果使用Groovy插件,你总是需要声明你想要使用的Groovy版本。 - tim_yates
3
Java插件不需要声明Java依赖项也可以工作。Groovy插件也可以采用同样的方式进行操作,我认为这样更加直观。Groovy的版本仍然可以通过多种方式进行切换,包括添加显式依赖项。 - Jason
我也认为文档可以更清晰地说明这一点。依赖项的添加应该在文档的“使用”部分靠近顶部进行。 - Jason
1
我在我的dependencies{}中有implementation 'org.codehaus.groovy:groovy-all:2.5.11',但我仍然遇到了错误。我感到困惑... - SovietFrontier
对我来说也是同样的问题...这个问题发生在从单模块切换到多模块项目结构后。 - Daniel Vilas-Boas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接