Не выполняется компилятор aspectJ, так как проект не является пакетом, поддерживающим classpath Java - PullRequest
4 голосов
/ 18 января 2012

Мои классы aspectj не компилируются, несмотря на то, что они аннотированы @Aspect и находятся в файлах расширения .aj.

Этот проект является архетипом EAR Maven JBoss AS 7.

[INFO] --- aspectj-maven-plugin:1.4:compile (default-cli) @ hms ---
[WARNING] Not executing aspectJ compiler as the project is not a Java classpath-capable package
[INFO] --- aspectj-maven-plugin:1.4:compile (default-cli) @ hms-ejb ---
[WARNING] bad version number found in C:\Users\Oh Chin Boon\.m2\repository\org\aspectj\aspectjrt\1.5.4\aspectjrt-1.5.4.jar expected 1.6.11 found 1.5.4
[WARNING] advice defined in sg.java.hms.aspect.AbstractLoggingAspect has not been applied [Xlint:adviceDidNotMatch]
[WARNING] advice defined in sg.java.hms.aspect.DefaultLoggingAspect has not been applied [Xlint:adviceDidNotMatch]
[WARNING] advice defined in sg.java.hms.aspect.AbstractLoggingAspect has not been applied [Xlint:adviceDidNotMatch]

РЕДАКТИРОВАТЬ: фрагмент pom.xml

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.4</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
    </configuration>
    <executions>
        <execution>
            <phase>process-sources</phase>
            <goals>
                <goal>compile</goal>       <!-- use this goal to weave all your main classes -->
            </goals>
        </execution>
    </executions>
</plugin>

Ответы [ 2 ]

5 голосов
/ 20 января 2012

Каким-то образом вы ссылаетесь на aspectj 1.5.4, но ваш исходный и целевой уровни - 1.6.AspectJ 1.5.x предназначен только для Java 1.5.Вам нужно явно указать AspectJ 1.6.Нечто подобное должно работать в вашем разделе зависимостей:

<dependency>
  <groupId>org.aspectj</groupId>
  <artifactId>aspectjrt</artifactId>
  <version>1.6.12</version>
</dependency>
0 голосов
/ 27 марта 2015

Я только что пересек эту проблему, это был мой сценарий: Вот мой конфиг плагина mojo:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.7</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <complianceLevel>1.7</complianceLevel>
        <verbose>true</verbose>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
                <goal>test-compile</goal>
            </goals>
        </execution>
    </executions>
</plugin>

И моя зависимость от Aspectj:

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>1.8.5</version>
</dependency>
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.8.5</version>
</dependency>

При компиляции (установка maven) я замечаю следующие сообщения:

[INFO] --- aspectj-maven-plugin:1.7:compile (default) @ com.wu.bishopframework ---
Downloading: …aspectj/aspectjtools/1.8.2/aspectjtools-1.8.2.pom
Downloaded: …aspectj/aspectjtools/1.8.2/aspectjtools-1.8.2.pom (1021 B at 2.3 KB/sec)
Downloading: …aspectj/aspectjtools/1.8.2/aspectjtools-1.8.2.jar
Downloaded: …aspectj/aspectjtools/1.8.2/aspectjtools-1.8.2.jar (10897 KB at 141.7 KB/sec)
[INFO] No modifications found skipping aspectJ compile

Тогда я получил это сообщение:

[WARNING] bad version number found in C:\Users\mavargas\.m2\repository\org\aspectj\aspectjrt\1.8.5\aspectjrt-1.8.5.jar expected 1.8.2 found 1.8.5

Решение было простым, просто добавьте зависимость aspectjtools внутри плагина, как показано здесь:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.7</version>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjtools</artifactId>
                    <version>1.8.5</version>
                </dependency>
            </dependencies>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <complianceLevel>1.7</complianceLevel>
                <verbose>true</verbose>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal> 
                        <goal>test-compile</goal> 
                    </goals>
                </execution>
            </executions>
        </plugin>

Это исправило проблему.

Надеюсь, это поможет кому-то пересечь ту же ситуацию ...

...