web-dev-qa-db-de.com

maven-site plugins 3.3 Java.lang.ClassNotFoundException: org.Apache.maven.doxia.siterenderer.DocumentContent

Seit dieser Nacht funktionieren Maven Site 3.3-Plugins nicht mehr.

Versuchen Sie, das lokale Repository zu löschen, aber keine Änderung. Maven 3.3.9Java 1.8

Keine Konfiguration oder Abhängigkeiten in pom für Site-Plugins definiert

[WARNING] Error injecting: org.Apache.maven.report.projectinfo.CiManagementReport
Java.lang.NoClassDefFoundError: org/Apache/maven/doxia/siterenderer/DocumentContent
53
timmy otool

Ich hatte gerade angefangen, dieses Problem auch während des Builds zu bekommen. Was für mich funktionierte, war, den maven-site-plugin und den maven-project-info-reports-plugin zusammen mit den Versionsnummern im Pom genau zu definieren.

<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>
65
David

Dies wird durch ein auf 3.0.0 aktualisiertes maven-project-info-reports-plugin verursacht und setzt auf doxia-site-renderer 1.8 (und hat org.Apache.maven.doxia.siterenderer.DocumentContent dieser Klasse), aber maven-site -plugin: 3.3 setzt auf doxia-site-renderer: 1.4 (und hat keine org.Apache.maven.doxia.siterenderer.DocumentContent)

Wir können die Version des Maven-Projekt-Info-Berichte-Plugins im Berichtsteil angeben:

<reporting>
        <plugins>           
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.9</version>
            </plugin>           
        </plugins>    
    </reporting>

Oder wir können Maven-Site-Plugin auf die neueste Version 3.7.1 spezifizieren:

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-site-plugin</artifactId>
    <version>3.7.1</version>
</plugin>

im gebauten Teil von Pom

44
Changhua

Die Version des Maven-Site-Plugins muss auch im Build-Abschnitt explizit festgelegt werden. Hier ist das Beispiel:

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

Maven 3 unterstützt Doxia nicht mehr.

Benutzen

<plugin>
  <groupId>org.Apache.maven.plugins</groupId>
  <artifactId>maven-project-info-reports-plugin</artifactId>
  <version>2.2</version>
</plugin>

Referenz: https://maven.Apache.org/plugins/maven-site-plugin/maven-3.html

1
rds

Diesen Fehler habe ich heute auch bei einigen Build-Jobs gefunden. Das oben vorgeschlagene Update, das eine konkrete Abhängigkeit für das Maven-Site-Plugin hinzufügt, funktioniert und behebt dieses Problem.

Was jedoch für mich hervorgehoben wurde, war die Tatsache, dass ich sogar das Mvn-Standortziel leitete. Ich wusste gar nicht, dass wir laufen und wir brauchen es nicht wirklich.

Mein Fix bestand daher darin, das Website-Ziel aus meinem MV-Argument zu entfernen, da die von ihr erstellte Website zwar recht nützlich ist. Ich wusste nie, dass wir sie erstellen, wir haben sie nie veröffentlicht und tatsächlich jeden Build gelöscht.

1
psf

Die folgenden Versionen in pom.xml haben das Problem für mich behoben:

            <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

Ich habe versucht, dem Rat von Changhua zu folgen und Maven-Project-Info-Reports-Plugin auf Version 3.0.0 und Maven-Site-Plugin auf 3.7.1 in meiner POM-Datei zu definieren. Dabei stellte ich fest, dass die Maven-Site immer noch in Version 3.3 gezogen wurde des Maven-Site-Plugins, egal wie ich es setze.

Endlich wurde mir klar, dass mein Problem mit unserer Projektstruktur zu tun hatte. Wir haben ein Eltern-Pom, in dem wir die Abhängigkeit des Maven-Site-Plugins definiert haben, die dann von den Poms der Kinder vererbt wurde. Die Build-Pom-Datei war jedoch separat und definierte kein maven-site-plugin, wodurch maven die 3.3-Version eigenständig importieren konnte. Ich habe die Maven-Site-Plugin-Abhängigkeit (Version 3.7.1) zur Build-Pom-Datei hinzugefügt, sodass sie jetzt sowohl in der Build-Pom-Datei als auch in der übergeordneten Pom-Datei vorhanden ist. Jetzt verwendet der Build die Version 3.7.1. und geht wieder vorbei.

0
mbreck

Sie müssen wirklich mehr Informationen hinzufügen (ich habe übrigens nicht gewählt).

IIRC; Wenn Sie keine Version für ein Plugin angeben, das an Lebenszyklusphasen gebunden ist, erhalten Sie die neueste Version.

Versuchen:

  • Upgrade auf die neueste Version von maven - 3.5.4ATOW
  • mvn help:effective-pom ausführen und prüfen, welche Versionen Tatsächlich aufgelöst werden - wenn Sie ein altes Protokoll von CI oder wo auch immer haben, um es mit ... zu vergleichen. 
  • Explicity Einstellung des Abschnitts maven-site-plugin versionin pluginManagement
  • Hinzufügen einer Abhängigkeit zu maven-site-plugin (siehe unten)

org/Apache/maven/doxia/siterenderer/DocumentContent ist in doxia-site-renderer zu finden:

    <dependency>
        <groupId>org.Apache.maven.doxia</groupId>
        <artifactId>doxia-site-renderer</artifactId>
        <version>1.8.1</version>
    </dependency>

Ich vermute, wenn Sie die Version von Maven-Site-Plugin explizit auf das setzen, was Sie bisher verwendet haben (übrigens), wird dies funktionieren.


Edit: War ein ähnliches Problem bei der Erstellung von Maven-Plugins, wobei die maven-site-plugin-Version (3.7.1 ATOW) explizit in dem von maven-invoker-plugin verwendeten Integrations-Pom eingestellt wurde.

0
earcam