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

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)


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"

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.


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>

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"

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.