die aspectjweaver Abhängigkeit zu beheben, fügen Sie diese Repository:
<repository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
Dies wird Ihnen 1.8.0.M1 von aspectjrt, aspectjweaver und aspectjtools auf Version zuzugreifen.
jedoch Version 1.6 des aspectj-Maven-Plugin nicht unterstützt Java 8.
Doch feder Aspekte-4.0.0 hat eine Abhängigkeit von aspectjweaver 1.8.0.M1 für Java 8-Unterstützung.
Wenn Sie mit Spring 3.2.6 und Java 7, die aspectj-Maven-Plugin Config funktioniert:
<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>
Sie könnten in der Lage sein, einen Ausschlusses auf aspectjweaver 1.8.0.M1 innerhalb der einfügen spring-aspects 4.0.0 Abhängigkeit. Dadurch können Sie Spring 4 mit Java 7 und allen Abhängigkeiten von 1.7.4 aspectj * verwenden.
In dem Bemühen, Kompilierung-Weberei (CTW) in einem Frühling anwenden 4/Java 8 Projekt, ich auf die folgenden Beiträge kamen:
Maven, Scala, Spring, AspectJ
https://weblogs.java.net/blog/fabriziogiudici/archive/2011/07/19/making-lombok-aspectj-and-maven-co-exist
Und hier ist meine Lösung: https://github.com/javawerks/homeschool/blob/master/pom.xml
Es funktioniert! Beachten Sie, dass diese Lösung die Version 1.8.0.M1 der 3 aspectj * -Amigos verwendet, die hier zu finden ist: http://repo.spring.io/milestone/org/aspectj/
Warnung: Wenn Ihr lokales Maven-Repository noch nicht die Abhängigkeiten von maven-antrun-plugin hat, werden Sie das tun bekomme "nicht finden * Abhängigkeit in maven central" -Fehler. Kopieren Sie die Abhängigkeiten zu Ihrem Haupt-Abhängigkeiten-Element, um dieses Problem zu beheben; mvn sauber kompilieren; entferne kopierte Abhängigkeiten; und maven-antrun-plugin sollte die aspectj * Abhängigkeiten finden. Führen Sie dann 'mvn clean install' aus und überprüfen Sie die AJC-Protokollierung.
schließlich in IntelliJ werden Sie sehen, ein 'können Symbol nicht lösen' Fehler für dieses iajc Attribut:
aspectPath="${org.springframework:spring-aspects:jar}"
Keine Sorge, es wie erwartet funktioniert. Es ist eine Maven-Antrun-Plugin Namenskonvention.
Irgendwann wird das aspectj-maven-plugin aktualisiert, um Java 8 zu unterstützen, und dann können wir zur Normalität zurückkehren. Das heißt, das showWeaveInfo = "true" Logging ist viel schöner.
Hoffe, das hilft. Wie so viele vor mir, brauchte es viel Bier, um dieses herauszufinden;)
Möglicherweise müssen Sie das entsprechende Meilenstein-Repository hinzufügen; Ich weiß nicht, welche es ist. Gute Fragen über die Abhängigkeit von "Frühjahrsaspekten", und ich würde einen Fehler dagegen einreichen. – chrylis
Ich habe nochmal die Abhängigkeiten von Spring-Aspekten überprüft und konnte keine Meilenstein-Repositories finden! Von wo lädt es den aspectjweaver 1.8.0.M1 herunter? – Serafeim
Es scheint, dass in der Abhängigkeitsverwaltung Gradle verwendet. In der Datei https://github.com/spring-projects/spring-framework/blob/v4.0.0.RELEASE/build.gradle kann ich sehen, dass '' ext.aspectjVersion = "1.8.0.M1" ''. – Serafeim