Использование Spring & Aspectj AOP в другой банке приводит к ошибке java.lang.NoSuchMethodError: aspectOf()
Я использую Spring AOP и Aspectj во время компиляции. Структура проекта выглядит следующим образом
parent-module
|---aop
|---service
|---web-app
Aop связанные вещи, включая интерфейс аннотации и аспекты находятся в проекте AOP, AOP аннотации используются в сервисе проекта, а сервисы используются в веб-приложении
Плетение времени компиляции аспекта применяется как к сервису, так и к веб-приложению.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.8</version>
<configuration>
<weaveDependencies>
<weaveDependency>
<groupId>com.group</groupId>
<artifactId>aop</artifactId>
</weaveDependency>
</weaveDependencies>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
<complianceLevel>1.8</complianceLevel>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<showWeaveInfo>true</showWeaveInfo>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
Таким образом, это работает отлично.
но поскольку я думаю, что аспекты включаются в работу во время компиляции, почему я не могу удалить компилятор aspectj из веб-приложения, тогда
java.lang.NoSuchMethodError: ошибка aspectOf()
происходит, когда аспекты вызваны.
Почему это происходит? Что я могу положить в pom веб-приложения, чтобы заставить аспект службы работать? Должен ли я позволить аспекту ткать как сервис, так и веб-приложение во время компиляции?