Wie kann ich das Maven Javadoc-Plugin über die Befehlszeile deaktivieren?

231

In pom.xml habe ich eine solche Erklärung

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

Gibt es eine Möglichkeit, dies über die Befehlszeile auszuschalten?

Ich weiß, dass ich das in ein Profil extrahieren kann, aber das ist nicht das, was ich will.

IAdapter
quelle

Antworten:

436

Die Javadoc-Generierung kann übersprungen werden, indem die Eigenschaft maven.javadoc.skipauf true [ 1 ] gesetzt wird, d. H.

-Dmaven.javadoc.skip=true

(und nicht falsch)

mswientek
quelle
1
Siehe @ Christoph-Tobias Schenke Antwort für den Ansatz mit Kindermodulen.
Öko
Dieses Argument kann auch direkt in Jenkins gesetzt werden, um dieses Problem zu vermeiden (in Global MAVEN_OPTS definiert in Configure System)
King Midas
11
Dies hat bei mir nicht funktioniert, aber ich habe gelernt, dass Sie diesen Parameter anders übergeben müssen, wenn Sie das Maven Release Plugin verwenden. Das hat funktioniert : mvn release:perform -Darguments="-Dmaven.javadoc.skip=true".
PatS
181

Es scheint, dass der einfache Weg

-Dmaven.javadoc.skip=true

funktioniert nicht mit dem Release-Plugin. In diesem Fall müssen Sie den Parameter als "Argument" übergeben.

mvn release:perform -Darguments="-Dmaven.javadoc.skip=true"
Christoph-Tobias Schenke
quelle
9
Wenn Sie zwei Argumente hinzufügen müssen, können Sie sie durch ein Leerzeichen wie dieses trennen-Darguments="-DskipTests -Dmaven.javadoc.skip=true"
Graham
4
Es funktioniert auch, diese zur Release-Plugin-Konfiguration in der Root-Ebene pom.xml <configuration><arguments>-DskipTests -Dmaven.javadoc.skip=true</arguments></configuration>
hinzuzufügen
1
Darüber hinaus hat skipTests einen stärkeren Geschmack, der auch die Zusammenstellung von Tests überspringt:-Dmaven.tests.skip=true
nclark
120

Sie können die maven.javadoc.skipEigenschaft verwenden, um die Ausführung des Plugins im Javadoc des Mojo zu überspringen. Sie können den Wert als Maven-Eigenschaft angeben:

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

oder als Befehlszeilenargument : -Dmaven.javadoc.skip=true, um die Generierung der Javadocs zu überspringen.

Vineet Reynolds
quelle
1
Diese Antwort beantwortet die Frage nicht wirklich, da dort angegeben wird, dass der Wechsel über die Befehlszeile erfolgen soll.
Sinisha Mihajlovski
3
Dies ist die perfekte Lösung für ein Projekt mit mehreren Modulen, bei dem einige Module kein Javadoc generieren und ansonsten einen Fehler verursachen.
Emmanuel Bourg
19

Fügen Sie der Release-Plugin-Konfiguration in der pom.xml auf Stammebene Folgendes hinzu:

<configuration>
    <arguments>-Dmaven.javadoc.skip=true</arguments>
</configuration>
nclark
quelle
Dies erfolgt nicht ordnungsgemäß über die Befehlszeile, wie in der Frage gefordert, funktioniert jedoch hervorragend, wenn Sie das Javadoc dauerhaft deaktivieren müssen.
Lorenzo Sciuto
1

Für Powershell-Neulinge ist es wichtig zu wissen, dass '.' ist ein syntaktisches Element von Powershell, daher muss der Schalter in doppelte Anführungszeichen gesetzt werden:

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

Det
quelle