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
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>
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
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>
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
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.
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>
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.
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:
ATOW
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. maven-site-plugin
versionin pluginManagement
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.