我对iajc编译器的aspectpath选项有点困惑。
我的项目使用AspectJ将度量代码编织到现有的swing应用程序中。
所有的应用程序源代码都是这样打包的:
com.xxx.yyy.myapp.*
我们已经把aspect放到了同一个项目中的一个包中:
com.xxx.yyy.aop.*
首先使用javac构建项目,输出到${classes.dir}
。
然后我们这样调用iacj:
<iajc inpath="${classes.dir}"
destDir="${classes.dir}"
fork="true"
maxmem="${aspectj.maxmem}"
verbose="true"
showWeaveInfo="true"
debug="true"
source="1.6"
target="1.6">
<classpath refid="ajclasspath"/>
</iajc>
和
<path id="ajclasspath">
<path refid="classpath"/>
<pathelement location="${scm.home}/ant_libs/aspectjrt.jar"/>
</path>
话虽如此,我是否需要在iajc中指定一个aspectpath ?
对
根据与classpath类似的文档,aspectpath包含只读的二进制方面库,这些库被编织到源代码中,但不包括在输出中。在您的情况下,您在输出中包含您的方面,并且它们在${classes.dir}
中具有正常类。所以当你不想分离你的方面时,你不需要指定aspectpath
。