我有一個混合(Java的& Groovy中)的IntelliJ項目。我的Groovy類正在使用@Builder註釋。我可以從Java訪問製造商,但在與失敗的項目的構建過程中出現失敗...的IntelliJ構建混合Groovy和Java項目失敗,並不能找到符號
Error:(27, 105) java: cannot find symbol
symbol: method builder()
location: class foo.bar.Sample
如果我註釋掉的助洗劑,該項目建立完全正常,我可以看到生成器在生成的類文件中。
我認爲這個問題是構建順序,即javac的嘗試Groovy的代碼被編譯之前編譯我的Java代碼。
任何想法如何解決這個問題?
該版本的IntelliJ是社區2017年1月2日
*更新*
我儘量更詳細的關於我的項目...它是建立這樣的...
源根:
的數據對象的Groovy類:
import groovy.transform.builder.Builder
@Builder
class DataObject {
String message
}
而且MainClass ...
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編譯器(常規月食分批2.4.3-01.jar)
,我收到了類似的錯誤(java的:找不到建設者symbel),如果我用javac作爲Java compil試試吧呃。
如果我刪除了從使用Java類的建設者,項目完全建立,我能夠使用的建設者,至少只要我沒有對Groovy類的任何變化。
你需要證明你是如何構建它。考慮'groovyc'而不是'javac' – Rao
我不確定要顯示/準確描述什麼。我使用生成項目(Ctrl + F9)。 Java編譯器是Javac(1.8)來構建項目。我也嘗試過Groovy-Eclipse,但它導致了其他錯誤(與泛型和lambda流結合)。 Groovy編譯器沒有設置任何內容,但Groovy框架已添加到項目中。 如何設置groovyc作爲編譯器?在Java編譯器屏幕上看不到該選項 –
這種情況下的常見修復方法是將.java文件放在源根目錄下,該目錄通過groovyc構建。 Groovyc只是用作.java文件的javac。 – cfrick