web-dev-qa-db-ja.com

maven-siteプラグイン3.3 Java.lang.ClassNotFoundException:org.Apache.maven.doxia.siterenderer.DocumentContent

この夜以来、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
58
timmy otool

私はビルド中にもこの問題を起こし始めたばかりです。私にとってうまくいったのは、pomの中のバージョン番号とともにmaven-site-pluginmaven-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>
74
David

これは、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の一部を構築する

47
Changhua

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>
6
TheJeff

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

1
rds

私は今日、私のいくつかのビルドジョブでもこのエラーを見つけました。上記で提案された修正、maven-site-pluginへの具体的な依存関係の追加は機能し、この問題を修正します。

しかし、私にとって強調されているのは、私がmvnサイトの目標を達成してさえいるという事実でした。

そのため、私の修正は自分のmvn argからそのサイトのゴールを削除することでした。なぜなら、それが作成するサイトは実際には非常に有用だからです。

1
psf

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>
0
Sergey Bondarev

私は、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を正しく使用しています。そしてまた通り過ぎている。

0
mbreck

あなたは本当にもっと情報を追加する必要があります(私はBTWを軽視しませんでした)。

IIRC;ライフサイクルフェーズに関連するプラグインのバージョンを指定しない場合は、最新のものが入手できます。

試してください:

  • 最新バージョンのmavenへのアップグレード - 3.5.4ATOW
  • mvn help:effective-pomを実行し、どのバージョンが実際に解決されているかをチェックします - あなたがCIからの古いログを持っていたり、どこと比較したいのであれば。
  • pluginManagementセクションにmaven-site-pluginバージョンを明示的に設定
  • maven-site-pluginへの依存関係の追加(下記参照)

org/Apache/maven/doxia/siterenderer/DocumentContentdoxia-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)を明示的に設定することでうまくいきました。

0
earcam