Как настроить плагин aspectj maven для использования Java 7?
Каковы соответствующие конфигурации / версии / версии плагинов для плагина aspectj для использования Java 7?
Я пытаюсь перейти с Java 6 на Java 7, и компилятор aspectj, похоже, не компилирует Java 7. Я указываю исходную и целевую версию java как 1.7 в конфигурации плагина для плагина aspectj и для плагина компилятора maven. Я ввел в свой код специфичный для Java7 синтаксис, добавив несколько языковых функций, таких как string в switch и оператор diamond. Во время сборки я получаю ошибки из 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>
1 ответ
Я обновился с 1.6.11 до 1.7.0, который был выпущен с тех пор, как я задал этот вопрос. У меня больше нет проблем aspectj/Java1.7, так что это решает этот вопрос.