由于未定义的名称

时间:2015-04-22 21:36:14

标签: java ant aspectj

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

  • 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任务中的source参数更改为&#34; 1.8&#34;匹配jrt包,但得到了相同的错误消息。

参考:

1 个答案:

答案 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>