この夜以来、Mavenサイト3.3のプラグインは機能しなくなりました。
ローカルリポジトリを削除しようとしますが、変更はしません。 Maven 3.3.9 Java 1.8
サイトプラグインのpomに定義や依存関係が定義されていない
[WARNING] Error injecting: org.Apache.maven.report.projectinfo.CiManagementReport
Java.lang.NoClassDefFoundError: org/Apache/maven/doxia/siterenderer/DocumentContent
私はビルド中にもこの問題を起こし始めたばかりです。私にとってうまくいったのは、pomの中のバージョン番号とともにmaven-site-plugin
とmaven-project-info-reports-plugin
を明確に定義することでした。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
これは、maven-project-info-reports-pluginが3.0.0に更新され、doxia-site-renderer 1.8(およびこのクラスにはorg.Apache.maven.doxia.siterenderer.DocumentContentがある)に依存していますが、maven-siteが原因です。 -plugin:3.3はdoxia-site-renderer:1.4に依存しています(そしてorg.Apache.maven.doxia.siterenderer.DocumentContentを持っていません)
私たちはレポートの部分で特定のmaven-project-info-reports-pluginバージョンを持つことができます。
<reporting>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
</plugin>
</plugins>
</reporting>
あるいは、maven-site-pluginを最新の3.7.1に指定することもできます。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
pomの一部を構築する
Mavenサイトプラグインのバージョンもbuildセクションで明示的に設定する必要があります。これがその例です。
<reporting>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>licenses</report>
<report>dependency-info</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<build>
<plugins>
<!-- Part of Maven - specified version explicitly for compatibility
with the maven-project-info-reports-plugin 3.0.0-->
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
</plugins>
</build>
Maven 3はもうDoxiaをサポートしていません。
つかいます
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.2</version>
</plugin>
参照: https://maven.Apache.org/plugins/maven-site-plugin/maven-3.html
私は今日、私のいくつかのビルドジョブでもこのエラーを見つけました。上記で提案された修正、maven-site-pluginへの具体的な依存関係の追加は機能し、この問題を修正します。
しかし、私にとって強調されているのは、私がmvnサイトの目標を達成してさえいるという事実でした。
そのため、私の修正は自分のmvn argからそのサイトのゴールを削除することでした。なぜなら、それが作成するサイトは実際には非常に有用だからです。
Pom.xmlの以下のバージョンは私にとって問題を解決しました:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7</version>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
</plugin>
私は、Changhuaのアドバイスに従って、pomファイルでmaven-project-info-reports-pluginをバージョン3.0.0に、maven-site-pluginを3.7.1に定義しようとしましたが、それでもmavenサイトはバージョン3.3でプルされています。設定方法にかかわらず、maven-site-pluginの.
私の問題は私たちのプロジェクト構造に関係していることに気づきました。親pomがあり、そこにmaven-site-pluginの依存関係を定義していましたが、それは子pomに継承されました。しかし、pomのビルドファイルは別のもので、maven-site-pluginをまったく定義していなかったため、mavenは3.3バージョンを独自に取り込むことができました。私はビルドpomファイルにmaven-site-plugin依存関係(バージョン3.7.1)を追加しました。そのため、それはビルドpomファイルと親pomファイルの両方に存在し、ビルドはバージョン3.7.1を正しく使用しています。そしてまた通り過ぎている。
あなたは本当にもっと情報を追加する必要があります(私はBTWを軽視しませんでした)。
IIRC;ライフサイクルフェーズに関連するプラグインのバージョンを指定しない場合は、最新のものが入手できます。
試してください:
ATOW
mvn help:effective-pom
を実行し、どのバージョンが実際に解決されているかをチェックします - あなたがCIからの古いログを持っていたり、どこと比較したいのであれば。pluginManagement
セクションにmaven-site-plugin
バージョンを明示的に設定maven-site-plugin
への依存関係の追加(下記参照)org/Apache/maven/doxia/siterenderer/DocumentContent
はdoxia-site-renderer
にあります。
<dependency>
<groupId>org.Apache.maven.doxia</groupId>
<artifactId>doxia-site-renderer</artifactId>
<version>1.8.1</version>
</dependency>
私はあなたが(偶然に)使っていたものに明示的にmaven-site-pluginのバージョンを設定することでうまくいくと思う。
編集: Mavenプラグインのビルドテストで同様の問題を追っていました。maven-site-plugin
で使用される統合pomにmaven-invoker-plugin
version(3.7.1 ATOW)を明示的に設定することでうまくいきました。