当方面是库组件时在 main 方法之前调用通知

Call advice before main method when the aspect is a library component

我一直在尝试在程序的主要方法之前调用一个通知。这是我的方面:

public final aspect MainProcessor {
    pointcut mainMethod(): 
        execution(public static void main(String[]));

    before() : mainMethod(){
        System.out.println(thisJoinPointStaticPart);
    }
}

我试图获得的主要方法是在另一个项目中,它使用我的方面项目作为库。主要方法很简单:

public static void main(String[] args) {
    System.out.println("Main here");
}

如果它与方面在同一个项目中,这将非常有用。但是,在这种情况下,它只会在控制台中打印出 "Main here"。我能做什么?

我刚刚解决了这个问题。因为我正在使用 Eclipse,而不是通过将库添加到 Java 构建路径来链接库(右键单击项目 -> 属性 -> Java 构建路径),我应该将它添加到AspectJ 构建(右键单击项目 -> 属性 -> AspectJ 构建)。

希望这对其他人有帮助。