gpt4 book ai didi

java - IntelliJ 构建混合 Groovy 和 Java 项目失败,找不到符号

转载 作者:行者123 更新时间:2023-12-03 18:29:30 24 4
gpt4 key购买 nike

我有一个混合的(Java 和 Groovy)IntelliJ 项目。我的 Groovy 类正在使用 @Builder 注释。我可以从 Java 访问构建器,但在项目的构建过程中它失败了...

Error:(27, 105) java: cannot find symbol
symbol: method builder()
location: class foo.bar.Sample

如果我注释掉构建器的使用,项目构建得非常好,我可以在生成的类文件中看到构建器。

我认为问题在于构建顺序,javac 会在编译 Groovy 代码之前尝试编译我的 Java 代码。

知道如何解决这个问题吗?

IntelliJ版本为Community 2017.1.2

* 更新 *

我试着更详细地介绍我的项目……它是这样设置的……

源根是:

Project source roots

DataObject groovy 类:

import groovy.transform.builder.Builder

@Builder
class DataObject {
String message
}

还有主类...

public class MainClass {

public static void main(String... args) throws Exception {
System.out.println(DataObject.builder().message("HelloWorld!").build().getMessage());

DataObject dataObject = new DataObject();
dataObject.setMessage("HelloWorld!");
System.out.println(dataObject.getMessage());
}
}

Groovy-Eclipse 在字节码版本 1.8 中设置为 Java Compiler (groovy-eclipse-batch-2.4.3-01.jar)

如果我尝试编译项目,我会收到以下错误... Build error

如果我尝试使用 javac 作为 Java 编译器,我会遇到类似的错误(java:找不到构建器的符号)。

如果我从 Java 类中删除构建器的使用,项目构建完美并且我能够使用构建器,至少只要我没有对 groovy 类进行任何更改。

最佳答案

您受到 https://issues.apache.org/jira/browse/GROOVY-3683 的影响.

假设您已经使用 sdkman 安装了 Groovy .

$ sdk use groovy 2.4.9
Using groovy version 2.4.9 in this shell.

# This is the error you get using joint compilation
$ groovyc -j src/main/groovy/*
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Compile error during compilation with javac.
/Users/danyjb/Downloads/GroovyTest/src/main/groovy/MainClass.java:4: error: cannot find symbol
System.out.println(DataObject.builder().message("HelloWorld!").build().getMessage());
^
symbol: method builder()
location: class DataObject
1 error

解决问题需要分别编译Groovy和Java:

$ groovyc src/main/groovy/DataObject.groovy -d out/
$ javac -cp $GROOVY_HOME/lib/groovy-2.4.9.jar:out/ -d out/ src/main/groovy/MainClass.java

就 IntelliJ IDEA 而言,这意味着您需要将 Groovy 代码放在单独的模块中,并将 Java 模块的依赖项添加到 Groovy 模块。

关于java - IntelliJ 构建混合 Groovy 和 Java 项目失败,找不到符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43630518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com