Использование 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 веб-приложения, чтобы заставить аспект службы работать? Должен ли я позволить аспекту ткать как сервис, так и веб-приложение во время компиляции?

0 ответов

Другие вопросы по тегам