そこでiajc
、intertype 宣言を適切に行うプロジェクト用のタスクを定義すると、project.jar を作成する別の jar タスクがあります。
次にiajc
、junit テスト ターゲットのタスクがあります。このタスクは、次のように ITD をテスト クラスに織り込むことを目的として project.jar を参照します。
<aspectpath>
<pathelement path="${dist}/project.jar"/>
<fileset dir="${lib.aspect}">
<include name="**/*.jar" />
<include name="**/*.zip" />
</fileset>
</aspectpath>
それは機能しません-コンパイラは次のようなエラーを生成しますclass "com....Foo" has to implement method doThings() defined in interface Bar
次に、を次のように変更<aspectpath>
します。
<aspectpath>
<pathelement location="${build.dir}"/>
<fileset dir="${lib.aspect}">
<include name="**/*.jar" />
<include name="**/*.zip" />
</fileset>
</aspectpath>
これは基本的に、コンパイラによって生成された中間クラス ファイルを使用しており、うまく機能します。
次に、タスクoutjar
の代わりにオプションを使用すると、その jar を で使用できることがわかりました。destdir
iajc
<aspectpath>
では、質問とコメントを次に示します。
<jar>
Q. 通常のタスクで動作させるパラメータはありますか?
C. outjar を使用しなければならないという事実はまったく文書化されていません。jar を出力するオプションについて言及されていますが、それが機能する jar を生成する唯一の方法であるとはどこにも書かれていません。