¿Cómo puedo deshabilitar el complemento Maven Javadoc desde la línea de comandos?

231

En pom.xml tengo una declaración como esta

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

¿Hay alguna manera de desactivar eso desde la línea de comandos?

Sé que puedo extraer eso en un perfil, pero eso no es lo que quiero.

Adaptador IA
fuente

Respuestas:

438

La generación Javadoc se puede omitir estableciendo la propiedad maven.javadoc.skipen verdadero [ 1 ], es decir

-Dmaven.javadoc.skip=true

(y no falso)

mswientek
fuente
1
Consulte la respuesta de @ Christoph-Tobias Schenke para conocer el enfoque a seguir con los módulos secundarios.
ecoe
Este argumento también se puede establecer directamente en jenkins para evitar este problema (en Global MAVEN_OPTS definido en Configurar sistema)
King Midas
11
Esto no funcionó para mí, pero aprendí que cuando usas el complemento de lanzamiento de Maven debes pasar este parámetro de manera diferente. Esto funcionó: mvn release:perform -Darguments="-Dmaven.javadoc.skip=true".
PatS
181

Parece que la manera simple

-Dmaven.javadoc.skip=true

no funciona con el complemento de lanzamiento. en este caso debe pasar el parámetro como "argumento"

mvn release:perform -Darguments="-Dmaven.javadoc.skip=true"
Christoph-Tobias Schenke
fuente
99
Si necesita agregar dos argumentos, puede separarlos con un espacio como este-Darguments="-DskipTests -Dmaven.javadoc.skip=true"
Graham el
44
También funciona para agregarlos a la configuración del complemento de lanzamiento en el pom.xml de nivel raíz:<configuration><arguments>-DskipTests -Dmaven.javadoc.skip=true</arguments></configuration>
nclark
1
Además, skipTests viene en un sabor más fuerte que también omite la compilación de pruebas:-Dmaven.tests.skip=true
nclark
120

Puede usar la maven.javadoc.skippropiedad para omitir la ejecución del complemento, yendo por el javadoc de Mojo. Puede especificar el valor como una propiedad de Maven:

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

o como argumento de línea de comandos:, -Dmaven.javadoc.skip=truepara omitir la generación de Javadocs.

Vineet Reynolds
fuente
1
Esta respuesta realmente no responde a la pregunta, ya que allí establece que el cambio debe hacerse a través de la línea de comando.
Sinisha Mihajlovski
3
Esta es la solución perfecta para un proyecto de varios módulos con algunos módulos que no generan javadoc y causan un error de lo contrario.
Emmanuel Bourg
19

Agregue a la configuración del complemento de lanzamiento en el pom.xml de nivel raíz:

<configuration>
    <arguments>-Dmaven.javadoc.skip=true</arguments>
</configuration>
nclark
fuente
esto no es correcto desde la línea de comandos como lo requiere la pregunta, pero funciona muy bien si necesita deshabilitar permanentemente el javadoc.
Lorenzo Sciuto
1

Para los usuarios novatos de Powershell es importante saber que '.' es un elemento sintáctico de Powershell, por lo que el interruptor debe estar entre comillas dobles:

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

Det
fuente