2

我正在尝试ajc从 Java 运行编译器(而不是从 Maven 或 Ant!)。问题是我需要哪个 Maven 依赖项,哪个类是入口点?我现在最好的选择是org.aspectj.tools.ajc.Mainfrom org.aspectj:aspectjtools:1.7.2。我对吗?

4

1 回答 1

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
于 2013-04-05T15:21:52.360 回答