2
我想從Java運行ajc
編譯器(不是來自Maven或Ant!)。問題是我需要哪個Maven依賴項以及哪個類是入口點?我現在最好的選擇是org.aspectj.tools.ajc.Main
從org.aspectj:aspectjtools:1.7.2
。我對嗎?如何從Java運行ajc?
我想從Java運行ajc
編譯器(不是來自Maven或Ant!)。問題是我需要哪個Maven依賴項以及哪個類是入口點?我現在最好的選擇是org.aspectj.tools.ajc.Main
從org.aspectj:aspectjtools:1.7.2
。我對嗎?如何從Java運行ajc?
是的。在您的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
感謝,我做到了完全像你所說:https://github.com/yegor256/jcabi/blob/jcabi-0.7.16/jcabi-maven-plugin/src/main/java/com/jcabi /maven/plugin/AjcMojo.java – yegor256