我正在尝试使用JDK8运行aspectj-maven插件。但它给出了错误 “java.lang.CharSequence类型无法解析。它是从所需的.class文件间接引用的”
有关如何解决的任何帮助,或者aspectj-maven-plugin是否支持JDK8。我正在使用1.6版本的aspectj - maven-plugin。
答案 0 :(得分:6)
我必须达到同样的目的,我疯狂地试图弄清楚这一点,幸运的是我可以解决它,在这里我告诉你我做了什么:
要在Java 8中使用aspectj-maven-plugin
,您需要版本aspectj-maven-plugin 1.7(请注意,aspectj-maven-plugin 1.6适用于Java 7)。
因此,maven插件配置需要:
<!-- AspectJ configuration -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.7-SNAPSHOT</version>
<configuration>
<complianceLevel>1.8</complianceLevel>
<source>1.8</source>
<target>1.8</target>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
顺便说一句,所需的aspectJ罐子是:
<!-- Spring AOP + AspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>1.8.1</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.1</version>
</dependency>
我遇到的最重要的事情是你需要手动将aspectj-maven-plugin 1.7 jar安装到你的pom.xml中,因为这个jar还没有在maven repo上。
你可以从Haus Jira那里得到它(查看附件部分):
https://jira.codehaus.org/browse/MASPECTJ-131
顺便说一下,下载后将其复制到您的仓库,您需要在相应目录中创建自己的 aspectj-maven-plugin-1.7-SNAPSHOT.pom
文件。您可以从版本1.6复制它但确保您修改以下内容:
<version>1.7-SNAPSHOT</version>
<properties>
<aspectjVersion>1.8.1</aspectjVersion>
<mavenVersion>2.2.1</mavenVersion>
<changesPluginVersion>2.9</changesPluginVersion>
</properties>
这就是你的全部,希望能帮到你。
答案 1 :(得分:2)
你不需要1.7-SNAPSHOT。我在POM中有这个片段,一切正常:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
<configuration>
<source>1.8</source>
<target>1.8</target>
<complianceLevel>1.8</complianceLevel>
<showWeaveInfo>true</showWeaveInfo>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.1</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>1.8.1</version>
</dependency>
</dependencies>
</plugin>