Wie konfigurieren Sie das aspectj maven Plugin für die Verwendung von Java 7?

Welche Konfiguration / Versionen / Plugin-Versionen sind für das aspectj-Plugin zur Verwendung von Java 7 geeignet?

Ich versuche, ein Upgrade von Java 6 auf Java 7 durchzuführen, und der Compiler aspectj scheint Java 7 nicht zu kompilieren. In der Plugin-Konfiguration für das Plugin aspectj und für das Plugin maven compiler wird die Java-Quell- und -Zielversion mit 1,7 angegeben. Ich habe meinem Code eine Java7-spezifische Syntax hinzugefügt, indem ich verschiedene Sprachfunktionen wie String in Switch und den Diamond-Operator hinzugefügt habe. Während des Builds erhalte ich von aspectj Fehler bezüglich der Java7-Syntax. Das erste Anzeichen dafür, dass etwas schief läuft, ist:

[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

Wenn ich den Executions-Bereich aus dem Maven-Plugin von aspectj entferne, damit er nicht ausgeführt wird, und mvn clean install verwende, wird der neue Code einwandfrei kompiliert. Also ich denke, es ist etwas falsch mit aspectj konfiguriert. Hier ist meine Plugin-Konfiguration:

<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>

Außerdem wird aspectjrt als eine Abhängigkeit außerhalb des Plugins-Abschnitts definiert

<dependencies>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>${org.aspectj-version}</version>
    </dependency>
<dependencies>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage