web-dev-qa-db-ja.com

Maven AspectJプラグインは、tools = jarがないため、Java 9でビルドできません。

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

バージョン1.11.1org.codehaus.mojoによってMaven Centralにリリースされるまで、代わりに snapshot build を使用します。

            <groupId>com.github.m50d</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.11.1</version>
8
izogfif

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>
4
James Pan

同じ問題に遭遇しました、問題は、この推移的な依存関係がアスペクトj-maven-pluginでデフォルトでアクティブになることです。

このPRで私のためにそれを修正しました https://github.com/mojohaus/aspectj-maven-plugin/pull/35

2
megglos

最新のプラグインバージョンを確認しましたか?

<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.11</version>
0
Marek Raszewski