aspectj-从另一个项目调用aspect函数会抛出noclassdeffounderror:org/aspectj/lang/joinpoint

2vuwiymt  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(277)

要求:-我们有一个java methodA 在里面 ProjectA . 这 methodA 通过将jar依赖项添加到POM中,跨不同的团队使用。我们想收集一些指标,比如哪些团队正在呼叫 methodA .
想法:我正在探索在我的非spring项目中使用aspectj。
问题:在 ProjectB ,我们添加了 ProjectA 依赖和调用 methodA ,但最终得到以下错误:

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

项目a: src/main/javaAspectClass.java 在要监视的方法上具有环绕和切入点

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

src/main/java/com/aspectj/CommonClass/methodA pom.xml :添加了依赖项 aspectjrt , aspectjweaver 和surefire插件

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-surefire-plugin</artifactId>
  4. <version>2.9</version>
  5. <configuration>
  6. <argLine>-XX:-UseSplitVerifier</argLine>
  7. <argLine>-javaagent:C:\Users\**\aspectj\aspectjweaver\1.8.13\aspectjweaver-1.8.13.jar</argLine>
  8. </configuration>
  9. </plugin>

和aspectj maven插件

  1. <plugin>
  2. <groupId>org.codehaus.mojo</groupId>
  3. <artifactId>aspectj-maven-plugin</artifactId>
  4. <version>1.7</version>
  5. <configuration>
  6. <showWeaveInfo>true</showWeaveInfo>
  7. <source>1.8</source>
  8. <target>1.8</target>
  9. <Xlint>ignore</Xlint>
  10. <complianceLevel>1.8</complianceLevel>
  11. <encoding>UTF-8</encoding>
  12. <verbose>true</verbose>
  13. </configuration>
  14. <executions>
  15. <execution>
  16. <!-- IMPORTANT -->
  17. <phase>process-sources</phase>
  18. <goals>
  19. <goal>compile</goal>
  20. <goal>test-compile</goal>
  21. </goals>
  22. </execution>
  23. </executions>
  24. <dependencies>
  25. <dependency>
  26. <groupId>org.aspectj</groupId>
  27. <artifactId>aspectjtools</artifactId>
  28. <version>${aspectj.version}</version>
  29. </dependency>
  30. </dependencies>
  31. </plugin>

项目b: pom.xml 依赖于 ProjectA 在测试课上,我打电话 methodA 属于 ProjectA ,但获取以下错误:

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

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题