问题描述
要求: - 我们在 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
:添加的依赖项是 aspectjrt
、aspectjweaver
和 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>
<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
在测试课程中,我调用了 methodA
的 ProjectA
,但收到以下错误:
java.lang.NoClassDefFoundError: org/aspectj/lang/Signature
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)