2013-04-02 2 views
2

Я пытаюсь запустить ajc компилятор с Java (не из Maven или Ant!). Вопрос в том, какая зависимость Maven мне нужна и какой класс является точкой входа? Лучший вариант у меня есть сейчас org.aspectj.tools.ajc.Main от org.aspectj:aspectjtools:1.7.2. Я прав?Как запустить ajc из Java?

ответ

4

Да. В вашем проекте Java вам нужно aspectjrt.jar (для среды исполнения) и aspectjtools.jar (для компилятора) по пути класса. Тогда вы можете создать проект AspectJ и создать файл JAR, содержащий аспекты и классы, как это:

import org.aspectj.tools.ajc.Main; 

public class AjcRunner { 
    public static void main(String[] args) throws Exception { 
     String[] ajcArgs = { 
      "-sourceroots", "c:\\my\\aspectj_project\\src", 
      "-outjar", "my_aspects.jar" 
     }; 
     Main.main(ajcArgs); 
    } 
} 

После этого вы можете проверить результат на консоли, как это, если у вас есть класс Application с методом main:

java -cp C:\path\to\aspectjrt.jar;my_aspects.jar Application 
+0

спасибо, я сделал это так же, как вы предложили: https://github.com/yegor256/jcabi/blob/jcabi-0.7.16/jcabi-maven-plugin/src/main/java/com/jcabi /maven/plugin/AjcMojo.java – yegor256

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