我在创建为DOMJ编译的ant任务时遇到问题。这似乎是命名空间问题,因为ant无法识别任务名称" aspectj:iajc。"知道为什么会这样吗?
错误讯息:
build.xml:122: Problem: failed to create task or type antlib:org.aspectj:iajc
Cause: The name is undefined.
在WEB-INF / lib目录中添加了jar:
为项目元素添加了名称空间:
<project xmlns:aspectj="antlib:org.aspectj">
添加了iajc任务来编译目标:
<target name="compile">
...
<aspectj:iajc source="1.6" sourceroots="../src" destDir="./${final.dir}/WEB-INF/classes/">
<classpath>
<fileset dir="./lib/">
<include name="**/*.jar" />
</fileset>
</classpath>
</aspectj:iajc>
...
</target>
我尝试将iajc任务中的source参数更改为&#34; 1.8&#34;匹配jrt包,但得到了相同的错误消息。
参考:
答案 0 :(得分:1)
我仍然不知道我之前的方法有什么问题,但我能够使用taskdef使其工作,这允许您指定aspectj jar文件的路径。
<taskdef resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties">
<classpath>
<pathelement location="./lib/aspectjtools-1.8.5.jar"/>
</classpath>
</taskdef>