gpt4 book ai didi

java - 使用ant编译时Aspectj不工作

转载 作者:行者123 更新时间:2023-12-02 03:47:10 24 4
gpt4 key购买 nike

如果我使用 IDE 运行代码,一切正常。 enter image description here

但是当我使用ant编译代码时,Aspectj的代理不起作用。我的 Ant 目标

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

Java 代码:

    @Around("execution(* *.*(..)) && @annotation(com.xyz.MonitorMethod)")
public Object check(ProceedingJoinPoint pjp) throws Throwable {
try {
return pjp.proceed();
} finally {
System.out.println("======================222");
}
}

此目标有问题吗?谢谢。我想使用Ajc11CompilerAdapter (javac)

最佳答案

您的 ant 目标中根本没有运行 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

(我不知道为什么您要将它作为命令行参数传递并将其定义为脚本中的属性)

关于java - 使用ant编译时Aspectj不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36201096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com