微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AspectJ- 从另一个项目调用方面函数抛出 NoClassDefFoundError: org/aspectj/lang/JoinPoint

如何解决AspectJ- 从另一个项目调用方面函数抛出 NoClassDefFoundError: org/aspectj/lang/JoinPoint

要求: - 我们在 methodA 中有一个 Java ProjectA。此 methodA 通过将 JAR 依赖项添加到他们的 POM 来跨不同团队使用。我们想收集一些指标,例如哪些团队在调用 methodA

想法:我正在探索在我的非 Spring 项目中使用 AspectJ。

问题:ProjectB 中,我们添加ProjectA 依赖项并调用methodA,但最终得到以下错误

java.lang.NoClassDefFoundError: org/aspectj/lang/Signature

项目 A:

src/main/javaAspectClass.java 具有要监控的方法的周围和切入点

@Around("execution(* com.aspectj.CommonClass.*(..))")
public Object around(ProceedingJoinPoint point) throws Throwable {
  System.out.println("Function monitored");
}

src/main/java/com/aspectj/CommonClass/methodA

pom.xml添加的依赖项是 aspectjrtaspectjweaver 和 Surefire 插件

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.9</version>
  <configuration>
    <argLine>-XX:-UseSplitVerifier</argLine>
    <argLine>-javaagent:C:\Users\**\aspectj\aspectjweaver\1.8.13\aspectjweaver-1.8.13.jar</argLine>
  </configuration>
</plugin>

aspectj-maven-plugin

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>aspectj-maven-plugin</artifactId>
  <version>1.7</version>
  <configuration>
    <showweaveInfo>true</showweaveInfo>
    <source>1.8</source>
    <target>1.8</target>
    <Xlint>ignore</Xlint>
    <complianceLevel>1.8</complianceLevel>
    <encoding>UTF-8</encoding>
    <verbose>true</verbose>
  </configuration>
  <executions>
    <execution>
      <!-- IMPORTANT -->
      <phase>process-sources</phase>
      <goals>
        <goal>compile</goal>
        <goal>test-compile</goal>
      </goals>
    </execution>
  </executions>
  <dependencies>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjtools</artifactId>
      <version>${aspectj.version}</version>
    </dependency>
  </dependencies>
</plugin>

项目 B:

pom.xml 依赖于 ProjectA

在测试课程中,我调用methodAProjectA,但收到以下错误

java.lang.NoClassDefFoundError: org/aspectj/lang/Signature

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。