要解決的aspectjweaver依賴,加上這個倉庫:
<repository>
<id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
這會給你訪問aspectjrt,aspectjweaver和aspectjtools的1.8.0.M1版本。
但是,AspectJ的Maven的插件的1.6版本不支持Java 8
然而彈簧方面-4.0.0具有對Java 8支持上aspectjweaver 1.8.0.M1的依賴。
如果你使用Spring 3.2.6和Java 7,這AspectJ的Maven的插件配置工作:
<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插入排除spring-aspects 4.0.0依賴。這可能允許您使用Spring 4與Java 7以及所有1.7.4版本的依賴關係。
在應用的編譯時間在春季4/Java的8項目,我碰到下面的帖子來織(CTW)的努力:
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
它的工作原理!請注意,此解決方案使用3 aspectj * amigos的1.8.0.M1版本,可在此處找到:http://repo.spring.io/milestone/org/aspectj/
警告:如果您的本地Maven存儲庫尚未具有maven-antrun-plugin依賴項,那麼您將得到「無法找到Maven中心的依賴」錯誤。要解決此問題,請將依賴項複製到主依賴項元素; mvn清理編譯;刪除複製的依賴關係;而maven-antrun-plugin應該找到aspectj *依賴關係。然後執行'mvn clean install'並驗證ajc日誌記錄。
最後在的IntelliJ你會看到一個「無法解析符號」錯誤此iajc屬性:
aspectPath="${org.springframework:spring-aspects:jar}"
不用擔心,它按預期工作。這是一個maven-antrun-plugin命名約定。
有一天,aspectj-maven-plugin將被更新爲支持Java 8,然後我們可以恢復正常。也就是說,showWeaveInfo =「true」記錄更好。
希望這會有所幫助。就像我之前的很多人一樣,花了很多啤酒來弄清楚這一點;)
您可能需要添加相應的里程碑存儲庫;我不知道它是哪一個。關於'spring-aspects'依賴的好問題,我會提出一個錯誤。 – chrylis
我再次檢查了spring-aspects的依賴關係,並且找不到任何里程碑存儲庫!從哪裏下載aspectjweaver 1.8.0.M1 ?? – Serafeim
似乎是在依賴管理中使用gradle。在文件https://github.com/spring-projects/spring-framework/blob/v4.0.0.RELEASE/build.gradle中,我可以看到''ext.aspectjVersion =「1.8.0.M1」''。 – Serafeim