私は混在した(Java & Groovy)IntelliJプロジェクトを持っています。私のGroovyクラスは@Builderアノテーションを使用しています。私は、Javaからビルダーにアクセスすることができますが、それは失敗にプロジェクトのビルドプロセス中に失敗した...インテリジェントビルドGroovyとJavaプロジェクトが混在していて、シンボルが見つかりませんでした。
Error:(27, 105) java: cannot find symbol
symbol: method builder()
location: class foo.bar.Sample
を、私はビルダーの使用をコメントアウトした場合、プロジェクトは完全に罰金構築し、私が見ることができますビルダーを結果のクラスファイルに追加します。
問題はビルド順序であり、javacはGroovyコードがコンパイルされる前にJavaコードをコンパイルしようとしていると思います。
これを修正する方法はありますか?
IntelliJのバージョンは、2017年1月2日コミュニティ
*更新*
私は私のプロジェクトについてより詳細になろう...それがこのように設定されている...
ソースルートは以下のとおりです。
のDataObjectグルーヴィークラス:
import groovy.transform.builder.Builder
@Builder
class DataObject {
String message
}
とGroovy-Eclipseのは、バイトコードのバージョン1.8でJavaコンパイラ(グルーヴィー-日食-バッチ2.4.3-01.jar)として設定されている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());
}
}
私は次のエラーを得たプロジェクトをコンパイルしようとした場合は...
は私が同様のエラーを取得する(Javaの:ビルダーのためのsymbelを見つけることができない)私は、Java compilなどのjavacでそれをしようとした場合エル。
Javaクラスからビルダーの使用を削除した場合、プロジェクトは完全にビルドされ、少なくとも私はGroovyクラスに変更がない限り、ビルダーを使用できます。
ビルド方法を示す必要があります。 'javac'の代わりに' groovyc'を考慮してください – Rao
私は正確に何を表示/記述すべきか分かりません。私はプロジェクトのビルド(Ctrl + F9)を使用します。 JavaコンパイラはプロジェクトをビルドするためのJavac(1.8)です。私もGroovy-Eclipseを試しましたが、ジェネリックとラムダストリームと組み合わせて、他のエラーにつながります。 Groovy Compilerでは何も設定されていませんが、Groovy Frameworkがプロジェクトに追加されています。 コンパイラとしてgroovycを設定するにはどうしたらいいですか? Javaコンパイラ画面でそのオプションが表示されない –
このシナリオの通常の修正は、.javaファイルをソースルートの下に置くことです。これはgroovycでビルドされます。 Groovycは.javaファイルのjavacとして動作します。 – cfrick