Comment puis-je désactiver le plugin Maven Javadoc à partir de la ligne de commande?


231

Dans pom.xml, j'ai une déclaration comme celle-ci

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <executions>
            <execution>
                <id>attach-javadocs</id>
                <goals>
                    <goal>jar</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

existe-t-il un moyen de désactiver cela à partir de la ligne de commande?

Je sais que je peux extraire cela dans un profil, mais ce n'est pas ce que je veux.

Réponses:


438

La génération Javadoc peut être ignorée en définissant la propriété maven.javadoc.skipsur true [ 1 ], c'est-à-dire

-Dmaven.javadoc.skip=true

(et pas faux)


1
Voir la réponse @ Christoph-Tobias Schenke pour l'approche à adopter avec les modules enfants.
ecoe

Cet argument peut également être défini directement dans jenkins pour éviter ce problème (dans Global MAVEN_OPTS défini dans Configure System)
King Midas

11
Cela n'a pas fonctionné pour moi, mais j'ai appris que lorsque vous utilisez le plugin de libération maven, vous devez passer ce paramètre différemment. Cela a fonctionné: mvn release:perform -Darguments="-Dmaven.javadoc.skip=true".
PatS

181

Il semble que la manière simple

-Dmaven.javadoc.skip=true

ne fonctionne pas avec le plugin de version. dans ce cas, vous devez passer le paramètre comme un "argument"

mvn release:perform -Darguments="-Dmaven.javadoc.skip=true"

9
Si vous devez ajouter deux arguments, vous pouvez les séparer avec un espace comme celui-ci-Darguments="-DskipTests -Dmaven.javadoc.skip=true"
Graham

4
Il fonctionne également pour les ajouter à la configuration du plugin de version dans le pom.xml au niveau racine:<configuration><arguments>-DskipTests -Dmaven.javadoc.skip=true</arguments></configuration>
nclark

1
De plus, skipTests vient dans une saveur plus forte qui ignore également la compilation des tests:-Dmaven.tests.skip=true
nclark

120

Vous pouvez utiliser la maven.javadoc.skippropriété pour ignorer l'exécution du plugin, en passant par le javadoc de Mojo. Vous pouvez spécifier la valeur en tant que propriété Maven:

<properties>
    <maven.javadoc.skip>true</maven.javadoc.skip>
</properties>

ou comme argument de ligne de commande -Dmaven.javadoc.skip=true:, pour ignorer la génération des Javadocs.


1
Cette réponse ne répond pas vraiment à la question, car elle indique que le changement doit être effectué via la ligne de commande.
Sinisha Mihajlovski

3
C'est la solution parfaite pour un projet multi-modules avec quelques modules ne générant aucun javadoc et provoquant une erreur sinon.
Emmanuel Bourg

19

Ajoutez à la configuration du plugin de version dans le pom.xml racine:

<configuration>
    <arguments>-Dmaven.javadoc.skip=true</arguments>
</configuration>

ce n'est pas correctement à partir de la ligne de commande comme requis par la question, mais cela fonctionne très bien si vous devez désactiver définitivement le javadoc.
Lorenzo Sciuto

1

Pour les utilisateurs débutants de Powershell, il est important de savoir que "." est un élément syntaxique de Powershell, le commutateur doit donc être placé entre guillemets:

mvn clean install "-Dmaven.javadoc.skip = true"

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.