13

lombok アノテーションを持つ Java Bean に依存する Scala クラスを持つ Maven Java/Scala 混合プロジェクトをコンパイルしようとしています。lombok jar ファイルを Scala コンパイラと lombok エージェントのブート クラスパスに追加しようとしましたが、コンパイラは生成されたゲッターを見つけることができませんでした。Scala コンパイラがロンボク アノテーションを認識する方法はありますか? そうでない場合、良い回避策は何ですか?

Bean は論理的に同じプロジェクトに属しているため、この Bean を最初にコンパイルするためだけに別の Maven プロジェクトを導入することを避けようとしていることに注意してください。また、後で GWT プロジェクトで使用されるため、Scala で Bean を書き直すこともできません。

ありがとうございました、

4

1 に答える 1

18

避けられないと思います。通常の Scala/Java 統合は次のように機能します。

  1. Java は Scala について何も知らないため、Scala が最初に実行されます。
    1. Scalac は Java ファイルをパーサーし、可視要素について学習します。
    2. Scalac は Scala ファイルを読み取り、クラス ファイルを生成します。
  2. Java は最後に実行され、Java ファイルと Scala によって生成されたクラス ファイルを読み取ります。

明らかな問題は、Scala が Lombok アノテーションについて何も知らないため、それによって生成された要素を把握できないことです。

Java から Scala への依存関係がない場合は、単純に順序を逆にすることができます。Java を最初に置き、Scala のクラスパスに javac の出力クラスファイルを含めます。

それ以外の場合は、分割する必要があると思います。

于 2012-06-23T18:42:52.937 に答える