Como posso desativar o plug-in Maven Javadoc na linha de comando?


231

No pom.xml eu tenho uma declaração 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>

existe alguma maneira de desativar isso na linha de comando?

Eu sei que posso extrair isso em um perfil, mas não é isso que eu quero.

Respostas:


438

A geração Javadoc pode ser ignorada definindo a propriedade maven.javadoc.skipcomo true [ 1 ], ou seja,

-Dmaven.javadoc.skip=true

(e não falso)


1
Consulte a resposta de Christoph-Tobias Schenke para obter uma abordagem a seguir com módulos filhos.
eCoE

Este argumento também pode ser definida diretamente em Jenkins para evitar este problema (da Global MAVEN_OPTS definido no Configure System)
Rei Midas

11
Isso não funcionou para mim, mas aprendi que quando você usa o plugin maven release, você precisa passar esse parâmetro de maneira diferente. Isso funcionou: mvn release:perform -Darguments="-Dmaven.javadoc.skip=true".
PatS

181

Parece que a maneira simples

-Dmaven.javadoc.skip=true

não funciona com o release-plugin. neste caso, você deve passar o parâmetro como um "argumento"

mvn release:perform -Darguments="-Dmaven.javadoc.skip=true"

9
Se você precisa adicionar dois argumentos que você pode separá-los com um espaço como este-Darguments="-DskipTests -Dmaven.javadoc.skip=true"
Graham

4
Também funciona para adicioná-los à configuração do plugin release no pom.xml no nível raiz:<configuration><arguments>-DskipTests -Dmaven.javadoc.skip=true</arguments></configuration>
nclark 11/16

1
Além disso, o skipTests tem um sabor mais forte que também ignora a compilação de testes:-Dmaven.tests.skip=true
nclark 11/16

120

Você pode usar a maven.javadoc.skippropriedade para ignorar a execução do plug-in, passando pelo javadoc do Mojo. Você pode especificar o valor como uma propriedade Maven:

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

ou como um argumento da linha de comandos -Dmaven.javadoc.skip=true:, para ignorar a geração dos Javadocs.


1
Essa resposta realmente não responde à pergunta, pois nela afirma que a troca deve ser feita via linha de comando.
Sinisha Mihajlovski

3
Esta é a solução perfeita para um projeto de vários módulos com alguns módulos que não geram nenhum javadoc e causam um erro caso contrário.
Emmanuel Bourg

19

Adicione à configuração do plug-in de liberação no pom.xml no nível raiz:

<configuration>
    <arguments>-Dmaven.javadoc.skip=true</arguments>
</configuration>

isso não é adequadamente da linha de comando, conforme exigido pela pergunta, mas funciona muito bem se você precisar desativar permanentemente o javadoc.
Lorenzo Sciuto

1

Para usuários novatos do Powershell, é importante saber que '.' é um elemento sintático do Powershell, portanto, o comutador deve ser colocado entre aspas duplas:

Instalação limpa do mvn "-Dmaven.javadoc.skip = true"

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.