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.

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)


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"

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.


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>

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"

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.