java - 由于名称未定义,AspectJ 的构建任务失败

标签 java ant aspectj

我在创建 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/

相关文章:

java - 如何判断 Java 对象的内存何时释放?

java - 为什么 Ant 删除任务不起作用?

Ant 复制过滤器集

java - ant - 更新任务 : regenerate only outdated files

java - 多方面修改参数提供around advice

java - JNI错误 "java.lang.UnsatisfiedLinkError:"

java - 同步部分不阻塞!

aop - 方面J : Issue when combining multiple pointcuts in @Around advice

java - Note5读取Mifare经典卡UID

java - AspectJ 在切点中正式解除绑定(bind)