96 votes

maven-site plugins 3.3 java.lang.ClassNotFoundException : org.apache.maven.doxia.siterenderer.DocumentContent

Depuis cette nuit, les plugins du site maven 3.3 ne fonctionnent plus.

J'ai essayé de supprimer le dépôt local, mais aucun changement. Maven 3.3.9 java 1.8

Pas de configuration ou de dépendances définies dans pom pour les plugins du site

[WARNING] Error injecting: org.apache.maven.report.projectinfo.CiManagementReport
java.lang.NoClassDefFoundError: org/apache/maven/doxia/siterenderer/DocumentContent

0 votes

132voto

David Points 471

Je venais juste de commencer à avoir ce problème également pendant les constructions. Ce qui a fonctionné pour moi, c'est de définir spécifiquement l'option maven-site-plugin y el maven-project-info-reports-plugin ainsi que les numéros de version dans le pom.

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

5 votes

Merci, j'ai juste ajouté le maven-project-info-reports-plugin avec la version 2.7 dans pom et c'est ok maintenant.

0 votes

Ça a marché pour moi aussi ! Merci.

4 votes

Pour mémoire : devrait être ajouté à build/plugins .

68voto

Changhua Points 546

Cela est dû à maven-project-info-reports-plugin mis à jour vers la version 3.0.0, et s'appuient sur les éléments suivants doxia-site-renderer 1,8 (et ont org.apache.maven.doxia.siterenderer.DocumentContent cette classe), mais maven-site-plugin:3.3 s'appuyer sur doxia-site-renderer:1.4 (et n'ont pas org.apache.maven.doxia.siterenderer.DocumentContent )

Nous pouvons spécifier maven-project-info-reports-plugin version en reporting partie :

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

Ou nous pouvons spécifier maven-site-plugin à la dernière version 3.7.1 comme :

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

sur build partie de pom.

0 votes

C'est en fait la vraie cause. Je me demandais ce qui (ou mieux qui) a déclenché cette mise à jour ? D'où maven tire-t-il cette information ?

1 votes

@mbreck oui, nous devons ajouter la configuration à chaque pom.

0 votes

La version de maven-site-plugin doit être spécifiée dans la section plugin des projets pour fonctionner. La section "nouveaux" rapports m'a beaucoup perturbé et semble être redondante. Pour moi, maven est presque inutilisable ces jours-ci.

12voto

TheJeff Points 685

La version du plugin du site maven doit être explicitement définie dans la section build également. Voici l'exemple :

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

2 votes

Merci ! J'obtenais l'erreur en suivant le guide de démarrage de Maven et en exécutant "mvn site". Après avoir ajouté votre extrait à mon pom.xml, la commande fonctionne maintenant.

1 votes

@WallTearer c'était exactement le cas. Je ne sais pas s'il a un comportement différent en suivant les tutoriels en tapant dans la console ou dans Eclipse (il ne devrait pas je suppose). Quoi qu'il en soit, je suppose que le guide de l'utilisateur devrait être mis à jour.

0 votes

TheJeff est le meilleur. Je suppose que c'est le <build> vs <reporting> séparation qui l'a fait fonctionner pour moi.

1voto

earcam Points 4587

Il faut vraiment que tu ajoutes plus d'informations (je ne t'ai pas descendu, d'ailleurs).

IIRC ; si vous ne spécifiez pas de version pour un plugin lié aux phases du cycle de vie, vous obtiendrez la dernière version.

Essayez :

  • Mise à niveau vers la dernière version de maven - 3.5.4 ATOW
  • Running mvn help:effective-pom et vérifier quelles versions sont sont effectivement résolues - si vous disposez d'un ancien journal de CI ou autre pour comparer avec
  • Définir explicitement le maven-site-plugin version sur pluginManagement section
  • Ajout d'une dépendance à maven-site-plugin (voir ci-dessous)

org/apache/maven/doxia/siterenderer/DocumentContent peuvent être trouvés dans doxia-site-renderer :

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

Je pense que le fait de définir explicitement la version de maven-site-plugin à celle que vous utilisiez (incidemment) fonctionnera.


Edit : J'ai rencontré un problème similaire dans les tests de construction du plugin maven, en définissant explicitement les paramètres suivants maven-site-plugin (3.7.1 ATOW) dans l'intégration pom utilisée par maven-invoker-plugin a fonctionné pour moi.

1voto

psf Points 43

J'ai également rencontré cette erreur sur certains de mes travaux de construction aujourd'hui. La correction suggérée ci-dessus, en ajoutant une dépendance concrète pour le maven-site-plugin, fonctionne et résout ce problème.

Cependant, ce que cela a mis en évidence pour moi, c'est le fait que j'utilisais même l'objectif du site mvn, dont je ne savais même pas que nous l'utilisions et dont nous n'avons pas vraiment besoin.

Ma solution a donc été de supprimer le but du site de mon mvn arg, car bien que le site qu'il crée soit en fait assez utile, je n'ai jamais su que nous le créions, nous ne l'avons jamais publié nulle part et nous le supprimions de toute façon à chaque construction.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X