我在创建 ant 任务来编译 AspectJ 时遇到问题。这似乎是一个命名空间问题,ant 无法识别任务名称“aspectj:iajc”。知道为什么会这样吗?
错误消息:
build.xml:122: Problem: failed to create task or type antlib:org.aspectj:iajc
Cause: The name is undefined.
将 jar 添加到 WEB-INF/lib 目录:
- aspectjrt-1.8.5.jar
- aspectjtools-1.6.2.jar
- aspectjweaver-1.8.5.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 任务中的源参数更改为“1.8”以匹配 jrt 包,但收到相同的错误消息。
引用:
最佳答案
我仍然不知道我以前的方法有什么问题,但我能够使用taskdef使其工作,它允许您指定aspectj jar文件的路径。
<taskdef resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties">
<classpath>
<pathelement location="./lib/aspectjtools-1.8.5.jar"/>
</classpath>
</taskdef>
关于java - 由于名称未定义,AspectJ 的构建任务失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29809316/