Seit dieser Nacht funktionieren die Plugins von Maven Site 3.3 nicht mehr.
Versuchen Sie, das lokale Repository zu löschen, aber keine Änderung. Maven 3.3.9 Java 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
Antworten:
Ich hatte gerade angefangen, dieses Problem auch während der Builds zu bekommen. Was für mich funktioniert hat war, das
maven-site-plugin
und dasmaven-project-info-reports-plugin
zusammen mit den Versionsnummern im POM spezifisch 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>
quelle
Dies wird durch das auf 3.0.0 aktualisierte Maven-Projekt-Info-Reports-Plugin verursacht, das auf doxia-site-renderer 1.8 basiert (und org.apache.maven.doxia.siterenderer.DocumentContent dieser Klasse hat), aber maven-site -plugin: 3.3 verlassen sich auf doxia-site-renderer: 1.4 (und haben nicht org.apache.maven.doxia.siterenderer.DocumentContent)
Wir können spezifische Maven-Projekt-Info-Berichte-Plugin-Version im Berichtsteil:
<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 das Maven-Site-Plugin für die neueste Version 3.7.1 wie folgt angeben:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.7.1</version> </plugin>
im Build Teil von Pom
quelle
maven-checkstyle-plugin (3.0.0)
undmaven-project-info-reports-plugin (2.9)
im<reporting>
Abschnitt vonpom.xml
Die Version des Maven-Site-Plugins muss auch im Build-Bereich 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>
quelle
<build>
vs<reporting>
Trennung, die es für mich funktionieren ließ.Maven 3 unterstützt Doxia nicht mehr.
Verwenden
<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
quelle
Sie müssen wirklich weitere Informationen hinzufügen (ich habe BTW nicht abgelehnt).
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
und Überprüfen, welche Versionen tatsächlich aufgelöst werden - wenn Sie ein altes Protokoll von CI haben oder wo immer Sie es vergleichen möchten.maven-site-plugin
Version inpluginManagement
Abschnittmaven-site-plugin
(siehe unten)org/apache/maven/doxia/siterenderer/DocumentContent
finden Sie indoxia-site-renderer
:<dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-site-renderer</artifactId> <version>1.8.1</version> </dependency>
Ich vermute, dass die explizite Einstellung der Version des Maven-Site-Plugins auf das, was Sie (übrigens) verwendet haben, funktioniert.
Bearbeiten: Verfolgte ein ähnliches Problem beim Testen von Maven-Plugin-Builds. Das explizite Festlegen der
maven-site-plugin
Version (3.7.1 ATOW) in der von pom verwendeten Integration pommaven-invoker-plugin
hat für mich funktioniert.quelle
Ich habe diesen Fehler heute auch bei einigen meiner Build-Jobs festgestellt. Das oben vorgeschlagene Update, das Hinzufügen einer konkreten Abhängigkeit für das Maven-Site-Plugin, funktioniert und behebt dieses Problem.
Was es für mich jedoch hervorhob, war die Tatsache, dass ich sogar das Ziel der MVN-Site ausführte, von dem ich nicht einmal wusste, dass wir es ausführen und das wir nicht wirklich benötigen.
Mein Fix bestand daher darin, das Site-Ziel aus meinem MVN-Argument zu entfernen, da die von ihr erstellte Site zwar recht nützlich ist, ich jedoch nie wusste, dass wir sie erstellen, sie nirgendwo veröffentlicht und sie ohnehin bei jedem Build gelöscht haben.
quelle
Ich habe versucht, Changhuas Rat zu befolgen und das Maven-Projekt-Info-Reports-Plugin auf Version 3.0.0 und das Maven-Site-Plugin auf 3.7.1 in meiner POM-Datei zu definieren, aber festgestellt, dass die Maven-Site immer noch in Version 3.3 abgerufen wurde des maven-site-plugins, unabhängig davon, wie ich es eingestellt habe.
Endlich wurde mir klar, dass mein Problem mit unserer Projektstruktur zu tun hatte. Wir haben einen Eltern-Pom, in dem wir die Maven-Site-Plugin-Abhängigkeit definiert haben, die dann von den Kinder-Poms geerbt wurde. Die Build-POM-Datei war jedoch separat und definierte überhaupt kein Maven-Site-Plugin, wodurch Maven die Version 3.3 selbst abrufen 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 korrekt Version 3.7.1. und geht wieder vorbei.
quelle
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>
quelle