Java 我的(AspectJ)jar无法识别jointcuts

Java 我的(AspectJ)jar无法识别jointcuts,java,jar,aop,aspectj,Java,Jar,Aop,Aspectj,环境:简单的Java独立应用程序。AspectJ罐子在里面 我有两个项目。第一个,比如“A”包含一个自定义方法范围注释和一个方面,当调用该方法时,该方面负责执行某些任务 注释: @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface AccessibleForRole { String value() ; } 这方面: public aspect AccessibleList

环境:简单的Java独立应用程序。AspectJ罐子在里面

我有两个项目。第一个,比如“A”包含一个自定义方法范围注释和一个方面,当调用该方法时,该方面负责执行某些任务

注释:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface AccessibleForRole {

    String value() ;

}
这方面:

public aspect AccessibleListener {

pointcut verifyRole(): 
    (
            call(@AccessibleForRole * *())          
    );

    before() : verifyRole() { // do something
    }
}
我已经用这些注释/方面完成了一个jar文件

之后,我在项目a中创建了一个模型类。我用我的注释注释了一个方法,运行程序,我看到了捕获事件并处理的方面

public class Model {

    @AccessibleForRole("admin")
    public void addUserToApplication(){
        System.out.println("in Model.addUserToApplication.");
    }
}
它很好用……但是。。。。 如果我创建了第二个项目,即使用jar“a”创建的项目“B”,并使用我注释的方法(例如同一个模型)创建了新的类,那么似乎没有什么特别的事情发生。什么也抓不到

将来有没有可能在不需要重新编译的情况下,用AspectJ从一个jar项目中捕获一些东西

提前感谢,问题已解决。 多亏了Maven插件:

org.codehaus.mojo
aspectj maven插件
我说:

<aspectLibraries>
    <aspectLibrary>
       <groupId>myGroupId</groupId>
       <artifactId>jarA</artifactId>
    </aspectLibrary>
</aspectLibraries>

myGroupId
吉拉
在构建或运行时,jarA中定义的方面会正确截取项目B中的代码


我希望这会有所帮助。

你到底想达到什么目的?
<aspectLibraries>
    <aspectLibrary>
       <groupId>myGroupId</groupId>
       <artifactId>jarA</artifactId>
    </aspectLibrary>
</aspectLibraries>