I have pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.pac</groupId>
<artifactId>test</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>test</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.2</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.2</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>1.8.2</version>
</dependency>
</dependencies>
<!-- ... -->
</project>
And class and aspect:
public class Main
{
public int a = 10;
public static void main( String[] args )
{
Main instance = new Main();
System.out.println(instance.test());
}
public int test(){
return a;
}
}
public aspect TestAspect {
pointcut publicMethodExecuted(): execution(public !static * *(..));
int around() : publicMethodExecuted() {
System.out.println("Test string");
int original_return_value = proceed();
return original_return_value * 100;
}
}
But mvn install produce jar-file without aspectj
jars. The jar looks like:
root
|
|--META-INF
|
|--com
| |
| |--pac
| |
| |--Main.class
|
|--TestAspect.class
|
|--builddef.lst
Why does the maven-jar-plugin
got rid of the aspectj
jars? How to fix that? I got NoClassDefFoundException
at runtime:
Exception in thread "main" java.lang.NoClassDefFoundError: org/aspectj/lang/NoAspectBoundException
at com.badmitrii.Main.test(Main.java:1)
at com.badmitrii.Main.main(Main.java:11)
Caused by: java.lang.ClassNotFoundException: org.aspectj.lang.NoAspectBoundException
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more