所以我为我的项目定义了iajc
任务,它做了很好的intertype声明,然后有一个单独的jar任务创建了一个project.jar。
然后junit测试目标有iajc
任务,这个任务引用project.jar,目的是将ITD编织成测试类,如下所示:
<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
任务中使用destdir
选项而不是iajc
,则可以在<aspectpath>
中使用该jar。
那么问题和评论就是:
Q值。是否有一些参数可以使它适用于常规的<jar>
任务?
℃。我必须使用outjar的事实根本没有记录 - 提到了输出jar的选项,但它没有说明这是生产一个可行的jar的唯一方法。