У меня есть проект, который НЕ является весенним приложением. Я пытаюсь использовать в нем аннотации AspectJ. На классы аннотаций ссылаются из другой банки, которая у меня есть. Я упомянул мой раздел плагинов POM ниже. Моя сборка прошла успешно, но в консольном выводе Maven ничего не упоминается о плагине AspectJ, а также аннотации не работают, когда я запускаю свой проект.
Я пытался выяснить, что случилось в течение нескольких часов, но не могу понять это.
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<complianceLevel>1.8</complianceLevel>
<showWeaveInfo>true</showWeaveInfo>
<aspectLibraries>
<aspectLibrary>
<groupId>it.cvc.ciscocommerce.lps.lp-commons</groupId>
<artifactId>lp-commons</artifactId>
</aspectLibrary>
</aspectLibraries>
<source>1.8</source>
<target>1.8</target>
</configuration>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>listpriceservice</warName>
</configuration>
</plugin>
<!-- Plugin for sdaas deployment. For compressing war to tar.gz -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/resources/assembly.xml</descriptor>
</descriptors>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.5.201505241946</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
Это две зависимости, определенные в Jar, которые я пытаюсь использовать в качестве библиотеки аспектов.
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.7.4</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>1.7.4</version>
</dependency>
Баночка скомпилирована нормально, и я могу использовать ее в другом приложении SPRING, но не в этом. В приложении SPRING у меня даже не определен плагин аспекта maven.
Когда я запускаю сборку maven, в консоли я вижу только следующие перечисленные плагины.
[ОТЛАДКА] Цель: org.apache.maven.plugins:maven-clean-plugin:2.5:clean (по умолчанию-чистый) [ОТЛАДКА] Стиль: Обычный
[ОТЛАДКА] Цель: org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (компиляция по умолчанию) [ОТЛАДКА] Стиль: Обычный
[ОТЛАДКА] Цель: org.apache.maven.plugins:maven-resources-plugin:2.6:testResources (по умолчанию-testResources) [ОТЛАДКА] Стиль: Обычный
[ОТЛАДКА] Цель: org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) [ОТЛАДКА] Стиль: Обычный
[ОТЛАДКА] Цель: org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (тест по умолчанию) [ОТЛАДКА] Стиль: Обычный
[ОТЛАДКА] Цель: org.apache.maven.plugins:maven-war-plugin:2.4:war (по умолчанию-война) [ОТЛАДКА] Стиль: Обычный
EDIT: прочитав ответ kriegaex и информацию о pluginManagement vs plugins, я изменил свой POM, как показано ниже. Обратите внимание, что мой проект не является многомодульным, он имеет только один POM.
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<complianceLevel>1.8</complianceLevel>
<showWeaveInfo>true</showWeaveInfo>
<aspectLibraries>
<aspectLibrary>
<groupId>it.cvc.ciscocommerce.lps.lp-commons</groupId>
<artifactId>lp-commons</artifactId>
</aspectLibrary>
</aspectLibraries>
<source>1.8</source>
<target>1.8</target>
</configuration>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>listpriceservice</warName>
</configuration>
</plugin>
<!-- Plugin for sdaas deployment. For compressing war to tar.gz -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/resources/assembly.xml</descriptor>
</descriptors>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.5.201505241946</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
Когда я это делаю, я получаю следующую ошибку в теге выполнения при выполнении AspectJ
Выполнение плагина не охвачено конфигурацией жизненного цикла: org.codehaus.mojo:aspectj-maven-plugin:1.4:compile (выполнение: по умолчанию, фаза: исходники процесса)
ОБНОВЛЕНИЕ Я помечаю этот вопрос как ответ, поскольку моя первоначальная проблема с неиспользуемым плагином AspectJ решена. Я открою новый вопрос по моей другой проблеме. Спасибо kriegaex за то, что указал мне правильное направление.