2016-03-24 2 views
0

Если я использую IDE для запуска кода, все работает нормально. enter image description hereAspectj не работает, когда используется ant для компиляции

Но когда я использую ant для компиляции кода, прокси-сервер Aspectj не работает. Мой муравей целевой

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

ответ

0

Вы не используете ajc вообще в вашей цели муравья, только стандарт javac.

Пожалуйста, обратитесь к ajcant task documentation

EDIT: (листинг неровные шаги со страницы выше):

  • добавить aspectjtools.jar в 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

(я не могу сказать, почему вы бы передать его в качестве аргумента командной строки и определить его как свойство в скрипте)

+0

На самом деле я хочу использовать Ajc11CompilerAdapter (javac), вы знаете, как следовать этому документу? https://eclipse.org/aspectj/doc/next/devguide/antTasks-adapter.html – Bensson

+0

Спасибо, я сделаю некоторое расследование. – Bensson

+0

@ diginoise вы можете мне помочь, этот вопрос http://stackoverflow.com/questions/38930247/when-run-ant-script-aspectj-not-import-aspect-source-folder-out-side-java-class – uma

Смежные вопросы