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.

IAdapter
la source

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)

mswientek
la source
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"
Christoph-Tobias Schenke
la source
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.

Vineet Reynolds
la source
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>
nclark
la source
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"

Det
la source