0

そのモデルを生成するために必要な Java ソース コードを生成する "toJavaCode()" をモデル上に構築したいと考えています (理由や、実行する必要があるかどうか、発生する可能性のある互換性の問題は気にしないでください)。

これをテストする方法に途方に暮れています。私はmavenを使用していますが、適切な一括テストのためにサーバーを起動する必要があるため、generate-sourcesは実際には機能しません。「テスト」の目標の間にサーバーを起動しますが、generate-sources は時期尚早です。

一方、組み込みのコンパイラ (JDK の tools.jar から) を使用してこれを行うことはできますが、それをテスト用に jar にパックする (またはその jar をロードする) 方法がわかりません。

何か案は?

4

2 に答える 2

1

JavaCompiler APIを使用してソース ファイルをコンパイルし、クラスローダーをセットアップしてコンパイル済みクラスをテストにロードできます (サンプル コード)。tools.jar はクラスパス上にある必要があります。これは、JDK を使用する場合に当てはまります。

生成されたコードが特定のクラスに対して安定している場合は、注釈プロセッサを使用してソース コードを生成し、注釈付きクラスと同じ javac 実行でコンパイルできます。

于 2009-12-10T08:12:43.997 に答える
0

Ant タスクを Maven に追加できます。これは、Maven ビルド中に「古典的な順序から外れている」何かへの道です。javac ant タスクを mavens テスト ゴールなどに追加するようなものです。

(申し訳ありませんが、私はあなたのコメンターマットbと同じくらい混乱しています-しかし、埋め込まれたアリタスクはあなたのスイスアーミーナイフです。)

于 2009-12-10T06:39:38.253 に答える