Запуск JDK8 для аспекта

Я пытаюсь запустить плагин aspectj-maven с JDK8. Но это приводит к ошибкам типа "Тип java.lang.CharSequence не может быть разрешен. На него косвенно ссылаются необходимые файлы.class"

Любая помощь о том, как решить, или если aspectj-maven-plugin поддерживает JDK8. Я использую версию 1.6 aspectj - maven-plugin.

3 ответа

Решение

Мне нужно было достичь того же, и я сошел с ума, пытаясь выяснить это, к счастью, я смог решить это, и здесь я дам вам то, что я сделал:

Использовать aspectj-maven-plugin с Java 8 вам нужна версия 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>

Между прочим, необходимы следующие JA-файлы:

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

И самое важное, с чем я столкнулся, было то, что вам нужно вручную установить jar aspectj-maven-plugin 1.7 в ваш pom.xml, так как этот jar еще не находится в репозитории maven.

Вы можете получить его у 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,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>

Другой способ решить эту проблему - понизить уровень JDK до 1.7. JDK 1.7 хорошо работает с aspectj-maven-plugin версий 1.4 - 1.6.

Вот скриншот, показывающий, как изменить уровень JDK в проекте IntelliJ IDEA:

введите описание изображения здесь

Установите Project SDK на 1.7. Смотрите документацию для более подробной информации.

Другие вопросы по тегам