JDKのバージョンを8から9に切り替えました。tools.jarがないため、AspectJプラグインが機能しなくなりました。
ゴールの実行デフォルトorg.codehaus.mojo:aspectj-maven-plugin:1.10:compile失敗:プラグインorg.codehaus.mojo:aspectj-maven-plugin:1.10またはその依存関係の1つを解決できませんでした:できました指定されたパスにアーティファクトcom.Sun:tools:jar:9.0.1が見つかりませんC:\ Program Files\Java\jdk-9.0.1 /../ lib/tools.jar
Tools.jar(およびrt.jar)がJava 9 JDKから削除されたことを理解しています。MavenAspectJプラグインをJava 9 tools.jarなし?
ここにバージョン情報を含む私のプラグイン定義があります:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.10</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<complianceLevel>1.9</complianceLevel>
<showWeaveInfo>true</showWeaveInfo>
<XnoInline>true</XnoInline>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.0.RC2</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>1.9.0.RC2</version>
</dependency>
</dependencies>
</plugin>
バージョン1.11.1
がorg.codehaus.mojo
によってMaven Centralにリリースされるまで、代わりに snapshot build を使用します。
<groupId>com.github.m50d</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.11.1</version>
Java 9でアスペクトjを機能させるための醜いトリックを見つけました。com.Sun:toolsをpom.xmlに指定するだけで、コンパイラーが実行されます。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.11</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
<configuration>
<source>1.8</source>
<target>1.8</target>
<complianceLevel>1.8</complianceLevel>
<encoding>UTF-8</encoding>
<verbose>true</verbose>
<weaveDependencies>
<weaveDependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
</weaveDependency>
</weaveDependencies>
<showWeaveInfo>true</showWeaveInfo>
<XnoInline>true</XnoInline>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>com.Sun</groupId>
<artifactId>tools</artifactId>
<version>${Java.version}</version>
<scope>system</scope>
<systemPath>${project.basedir}/pom.xml</systemPath>
</dependency>
</dependencies>
</plugin>
同じ問題に遭遇しました、問題は、この推移的な依存関係がアスペクトj-maven-pluginでデフォルトでアクティブになることです。
このPRで私のためにそれを修正しました https://github.com/mojohaus/aspectj-maven-plugin/pull/35
最新のプラグインバージョンを確認しましたか?
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.11</version>