但是当我使用ant编译代码时,Aspectj的代理并不起作用。 我的蚂蚁目标
router.parent.navigate(['User'])
Java代码:
<property name="ajc.adapter" value="org.aspectj.tools.ant.taskdefs.Ajc11CompilerAdapter"/>
<target name="compile" description="compile all files">
<mkdir dir="WebContent/WEB-INF/classes" />
<javac
debug="true"
srcdir="src"
destdir="WebContent/WEB-INF/classes"
classpathref="classpath"
deprecation="true"
source="1.6"
target="1.6"
optimize="true">
<include name="**/*.java" />
<compilerarg compiler="${ajc.adapter}" line="-verbose -Xlint -proceedOnError"/>
<compilerarg compiler="${ajc.adapter}" value="-classpath"/>
<!--<compilerarg value="-Xlint:deprecation"/>-->
<!--<compilerarg value="-Xlint:unchecked"/>-->
</javac>
<!-- Copy the properties files. -->
<copy todir="WebContent/WEB-INF/classes">
<fileset dir="src">
<include name="**/*.properties" />
</fileset>
</copy>
<!-- Copy the XML files -->
<copy todir="WebContent/WEB-INF/classes">
<fileset dir="src">
<include name="**/*.xml" />
</fileset>
</copy>
</target>
此目标中是否有任何问题?谢谢。 我想用Ajc11CompilerAdapter (javac)
答案 0 :(得分:2)
您的蚂蚁目标中根本没有ajc
,只是标准javac
。
请参阅ajc
ant task documentation
编辑:(列出上页中的粗略步骤):
aspectjtools.jar
添加到ant的lib目录使用以下内容修改您的javac
目标,以获得指导:
<property name="ajc"
value="org.aspectj.tools.ant.taskdefs.Ajc11CompilerAdapter"/>
<javac srcdir="src" includes="org/aspectj/**/*.java" destdir="dest" >
<compilerarg compiler="${ajc}" line="-argfile src/args.lst"/>
<javac/>
运行构建脚本,传递build.compiler
属性,其值为适配器类的完全限定名称:
Ant -Dbuild.compiler=org.aspectj.tools.ant.taskdefs.Ajc11CompilerAdapter
(我无法告诉你为什么要将它作为命令行参数传递并将其定义为脚本中的属性)