使用Java 7的aspectj插件有哪些适当的配置/版本/插件版本?
我正在尝试从Java 6升级到Java 7,而aspectj编译器似乎没有编译Java 7.我在Aspectj插件和maven的插件配置中将java源和目标版本指定为1.7编译器插件。我在我的代码中引入了Java7特定的语法,添加了几个语言功能,如switch in switch和diamond operator。在构建期间,我从aspectj获取有关Java7语法的错误。事情出错的第一个迹象是:
[INFO] --- aspectj-maven-plugin:1.4:compile (default) @ site ---
[ERROR] Cannot switch on a value of type String. Only int values or enum constants are permitted
[ERROR] Cannot instantiate the type HashSet<?>
[ERROR] Syntax error on token "<", ? expected after this token
如果我从aspectj maven插件中删除执行部分,使其无法运行,并使用mvn clean install,则新代码编译正常。所以我认为这是与aspectj错误配置的东西。这是我的插件配置:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java-version>1.7</java-version>
<org.aspectj-version>1.6.11</org.aspectj-version>
</properties>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.4</version>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<configuration>
<complianceLevel>${java-version}</complianceLevel>
<encoding>${project.build.sourceEncoding}</encoding>
<outxml>true</outxml>
<source>${java-version}</source>
<target>${java-version}</target>
</configuration>
</plugin>
此外,aspectjrt被定义为插件部分之外的依赖关系
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<dependencies>
答案 0 :(得分:8)
我从1.6.11更新到1.7.0,自我提出这个问题以来已经发布了。我不再有任何aspectj / Java1.7问题,因此解决了这个问题。