Чтобы устранить зависимость aspectjweaver, добавьте репозиторий:
<repository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
Это даст вам доступ к версии 1.8.0.M1 из aspectjrt, aspectjweaver и aspectjtools.
Однако, версия 1,6 из AspectJ-Maven-плагин не поддерживает Java 8.
Однако весна-аспекты-4.0.0 имеет зависимость от aspectjweaver 1.8.0.M1 для поддержки Java 8.
Если вы используете Spring 3.2.6 и Java 7, это AspectJ-специалист-плагин конфигурации работы:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.6</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<complianceLevel>1.7</complianceLevel>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
<showWeaveInfo>true</showWeaveInfo>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
Вы могли бы вставить исключение на aspectjweaver 1.8.0.M1 в пределах весна-аспекты 4.0.0. И это может позволить вам использовать Spring 4 с Java 7 и всеми зависимостями 1.7.4 aspectj *.
В попытке применить время компиляции ткачество (БКМ) в Spring 4/Java 8 проекта, я наткнулся на следующие должности:
Maven, Scala, Spring, AspectJ
https://weblogs.java.net/blog/fabriziogiudici/archive/2011/07/19/making-lombok-aspectj-and-maven-co-exist
И вот мое решение: https://github.com/javawerks/homeschool/blob/master/pom.xml
Он работает! Обратите внимание, что это решение использует версию 1.8.0.M1 из 3 aspectj * amigos, которую можно найти здесь: http://repo.spring.io/milestone/org/aspectj/
Предупреждение: Если в вашем локальном хранилище maven еще нет зависимостей maven-antrun-plugin, вы будете получить «не удается найти зависимостей» в центральных ошибках maven. Чтобы устранить эту проблему, скопируйте зависимости в свой основной элемент зависимостей; mvn clean compile; удалять скопированные зависимости; и maven-antrun-plugin должен найти зависимости aspectj *. Затем выполните «mvn clean install» и проверьте журнал ajc.
Наконец, в Intellij вы увидите «не может разрешить символ» ошибки для этого атрибута iajc:
aspectPath="${org.springframework:spring-aspects:jar}"
Не беспокойтесь, он работает, как ожидалось. Это соглашение об именах maven-antrun-plugin.
Когда-нибудь плагин aspectj-maven будет обновлен для поддержки Java 8, а затем мы сможем вернуться к нормальной жизни. Тем не менее, запись в showWeaveInfo = "true" намного приятнее.
Надеюсь, это поможет. Как и многие передо мной, для этого нужно было много пива;)
Возможно, вам понадобится добавить соответствующий вехой; Я не знаю, какие они есть. Хорошие вопросы о зависимостях 'spring-aspect', и я бы подал на него ошибку. – chrylis
Я снова проверил зависимости весенних аспектов и не смог найти никаких хранилищ вехи! Откуда он загружает aspectjweaver 1.8.0.M1 ?? – Serafeim
Кажется, что использует управление градиентом в управлении зависимостями. В файле https://github.com/spring-projects/spring-framework/blob/v4.0.0.RELEASE/build.gradle я могу видеть, что '' ext.aspectjVersion = "1.8.0.M1" ''. – Serafeim