Maven não está funcionando no Java 8 quando as tags Javadoc estão incompletas

312

Desde que eu uso o Maven, fui capaz de criar e instalar em meus projetos de repositório local que possuem tags Javadoc incompletas (por exemplo, um parâmetro ausente).

No entanto, desde que eu migrei para o Java 8 (1.8.0-ea-b90), o Maven é absolutamente rigoroso quanto à falta de tags de documentação e me mostra muitos erros do Javadoc relacionados a problemas do Javadoc quando tento criar ou instalar um projeto onde o Javadoc não está "perfeito". Alguns dos projetos que estou tentando compilar e instalar no meu repositório local são projetos de terceiros dos quais não tenho controle. Portanto, a solução alternativa de apenas corrigir todos os Javadocs em todos esses projetos não parece viável no meu cenário.

Esta é uma pequena parte da saída que vejo quando executo mvn clean package installno meu projeto:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.026s
[INFO] Finished at: Mon Apr 08 21:06:17 CEST 2013
[INFO] Final Memory: 27M/437M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9:jar (attach-javadocs) on project jpc: MavenReportException: Error while creating archive:
[ERROR] Exit code: 1 - /Users/sergioc/Documents/workspaces/heal/jpc/src/main/java/org/jpc/engine/prolog/PrologDatabase.java:10: error: @param name not found
[ERROR] * @param terms the terms to assert
[ERROR] ^
[ERROR] /Users/sergioc/Documents/workspaces/heal/jpc/src/main/java/org/jpc/engine/prolog/PrologDatabase.java:11: warning: no description for @return
[ERROR] * @return
[ERROR] ^

O plug-in Javadoc Maven está configurado assim no meu POM:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.9</version>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Como eu disse antes, tudo está funcionando bem se eu voltar ao Java 7. Talvez isso seja um bug relacionado ao Maven em execução no Java 8? Como eu poderia fazê-lo funcionar (ou seja, poder construir o Javadoc do projeto e instalar seu código no meu repositório local) com o Java 8? Eu testei com o Maven 3.0.3 e 3.0.5 no OSX.

ATUALIZAR:

Se eu alterar minha configuração de plug-in Javadoc com <failOnError>false</failOnError>(obrigado Martin):

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.9</version>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Em seguida, o projeto é instalado no meu repositório local. No entanto, o Javadoc JAR ainda não foi gerado.

Um fragmento da saída que vejo no console com esta nova configuração é:

[ERRO] MavenReportException: erro ao criar arquivo: código de saída: 1 - /Users/....java:18: aviso: no @param ... A linha de comando era: / Library / Java / Home / bin / javadoc @options @packages

Consulte os arquivos Javadoc gerados em '/ Users / sergioc / Documents / workspaces / heal / minitoolbox / target / apidocs' dir.

em org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5043) em org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeReport (AbstractJavadocMojo.java.99) .javadoc.JavadocJar.execute (JavadocJar.java:181) em org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) em org.apache.maven.lifecycle.internal.MojoExecutor.exava. : 209) em org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) em org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) em org.apache. maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) em org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:59) em org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) em org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:16): em org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320) em org.apache.maven.DefaultMaven.execute (DefaultMaven.java:156) em org.apache.maven.cli.MavenCli.execute (MavenCli.java : 537) em org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) em org.apache.maven.cli.MavenCli.main (MavenCli.java:141) em sun.reflect.NativeMethodAccessorImpl.invoke0 ( Método nativo) em sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) em sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) em java.lang.reflect.Method.invocar (Method.java:491) em org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) em org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:230) em org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) em org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352)

Alguma solução alternativa sobre como construir as fontes, instalar o projeto e gerar o Javadoc JAR em uma etapa, como estava trabalhando com o Java 7?

Sergio
fonte
Olá @ 75inchpianist, atualizei a pergunta, na verdade são erros (embora, surpreendentemente, a última linha do erro se refira a um aviso, como você pode ver na saída gerada). O projeto não está instalado no meu repositório local, por isso não é considerado como uma simples advertência :(
Sergio
Para o GoogleJuice: recebi o erro "error: mau uso de '>'" porque tinha uma grande seta no comentário do JavaDoc
Drew Stephens
1
Talvez seja útil para alguém: Você pode facilmente encontrar todas essas marcas incompletos em IntelliJ executando inspeção Ctrl + Alt + Shift + i "Declaração tem problemas JavaDoc"
Sergey Ponomarev
1
Este não é o perito, o que é o programa javadoc que tem uma rigorosa muito em Java 8.
Thorbjørn Ravn Andersen

Respostas:

388

A melhor solução seria corrigir os erros do javadoc. Se, por algum motivo, isso não for possível (código fonte gerado automaticamente), você poderá desativar esta verificação.

DocLint é um novo recurso do Java 8 , resumido em:

Forneça um meio de detectar erros nos comentários do Javadoc no início do ciclo de desenvolvimento e de maneira que seja facilmente vinculada ao código-fonte.

Isso é ativado por padrão e executa várias verificações antes de gerar Javadocs. É necessário desativar isso no Java 8, conforme especificado neste encadeamento . Você precisará adicionar isso à sua configuração do maven:

<profiles>
  <profile>
    <id>java8-doclint-disabled</id>
    <activation>
      <jdk>[1.8,)</jdk>
    </activation>
    <properties>
      <javadoc.opts>-Xdoclint:none</javadoc.opts>
    </properties>
  </profile>
</profiles>
<build>
  <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.9</version>
        <executions>
            <execution>
                <id>attach-javadocs</id>
                <goals>
                    <goal>jar</goal>
                </goals>
                <configuration>
                    <additionalparam>${javadoc.opts}</additionalparam>
                </configuration>
            </execution>
        </executions>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <reportPlugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <configuration>
                <additionalparam>${javadoc.opts}</additionalparam>
              </configuration>
            </plugin>
          </reportPlugins>
        </configuration>
      </plugin>
   </plugins>
</build>

Para maven-javadoc-plugin 3.0.0+: Substitua

<additionalparam>-Xdoclint:none</additionalparam>

com

<doclint>none</doclint>
Subhas
fonte
18
Existe uma maneira de fazer isso funcionar tanto com o JDK 8 quanto com o JDK 7? Ele falha no JDK 7 porque javadocnão conhece essa opção.
Feuermurmel
8
Embora isso responda à pergunta feita aqui, eu gostaria de aconselhar os futuros visitantes a verificar primeiro a resposta de peterh: stackoverflow.com/a/34809831/1180785 (a maioria das pessoas que enfrenta esse problema só tem alguns lugares para corrigir, por isso é melhor corrigi-los do que desativar a verificação)!
Dave
8
Para maven-javadoc-plugin, use <doclint>none</doclint>. Veja maven.apache.org/plugins/maven-javadoc-plugin/...
coolersport
11
Também desde que o maven-javadoc-plugin 3.0.0 <additionalparam/>é substituído por <additionalOptions/>. Veja Issues.apache.org/jira/browse/MJAVADOC-475
fdelsert
1
Está correto. Gostaria de avisar que durante a migração do Maven 2 a maven 3, não se esqueça que esta tag plugin não deve ser incluída para relatar tag mas diretamente para pluginManagement (pom.xml)
dimeros
97

A abordagem mais fácil para fazer as coisas funcionarem com o java 8 e o java 7 é usar um perfil na compilação:

<profiles>
  <profile>
    <id>doclint-java8-disable</id>
    <activation>
      <jdk>[1.8,)</jdk>
    </activation>

    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <configuration>
            <additionalparam>-Xdoclint:none</additionalparam>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>
ankon
fonte
1
A melhor solução provavelmente seria um híbrido entre a sua solução e a que a Zapp forneceu abaixo. Se você deixar desta maneira, o comando mvn site: site ainda estará travando. Você deve criar um perfil ativado pelo jdk 1.8 que define uma propriedade global.
Max Nad
64

Aqui está a maneira mais concisa de ignorar os avisos de documentos, independentemente da versão java usada. Não há necessidade de duplicar a configuração do plug-in em vários perfis com pequenas modificações.

<profiles>
  <profile>
    <id>doclint-java8-disable</id>
    <activation>
      <jdk>[1.8,)</jdk>
    </activation>
    <properties>
      <javadoc.opts>-Xdoclint:none</javadoc.opts>
    </properties>
  </profile>
</profiles>

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>2.9.1</version>
      <executions>
        <execution>
          <id>attach-javadocs</id> <!-- The actual id should be apparent from maven output -->
          <configuration>
            <additionalparam>${javadoc.opts}</additionalparam>
          </configuration>
        </execution>
      </executions>
    </plugin>
    ...
  </plugins>
</build>

Testado no oracle / open jdk 6, 7, 8 e 11.

Oliver Gondža
fonte
1
E onde isso deve ser colocado especificamente?
Clearlight 03/02/19
1
@clearlight, ambos builde profilessão blocos de nível superior em maven pom.xml. maven.apache.org/pom.html#Build .
Oliver Gondža 04/04/19
Obrigado. Acabei descobrindo isso, mas é bom ter isso associado a esta resposta.
Clearlight 05/02/19
38

Adicione na seção de propriedades globais no arquivo pom:

<project>
    ...
    <properties>
        <additionalparam>-Xdoclint:none</additionalparam>
    </properties>

A solução comum fornecida aqui nas outras respostas (adicionando essa propriedade na seção de plug-ins) não funcionou por algum motivo. Somente configurando-o globalmente eu pude construir o jar javadoc com sucesso.

zapp
fonte
1
esta é a única solução que funcionou para mim. Eu li a resposta aqui também: blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html
acvcu
37

A solução mais curta que funcionará com qualquer versão Java:

<profiles>
    <profile>
        <id>disable-java8-doclint</id>
        <activation>
            <jdk>[1.8,)</jdk>
        </activation>
        <properties>
            <additionalparam>-Xdoclint:none</additionalparam>
        </properties>
    </profile>
</profiles>

Basta adicionar isso ao seu POM e você estará pronto.

Este é basicamente resposta da @ Ankon além de @ resposta de Zapp .


Para usuários do maven-javadoc-plugin 3.0.0:

Substituir

<additionalparam>-Xdoclint:none</additionalparam>

de

<doclint>none</doclint>

Fred Porciúncula
fonte
É a melhor solução para mim. Funciona para bots java 7 e java 8. Mas a maneira como funciona é um tipo de mágica:. Como é que este parâmetro "additionalParam" adicionar ao javadoc plug-in (e não para os outros)
PDEM
1
@pdem O parâmetro adicional é adicionado ao Maven, não ao plug-in Javadoc. Esta solução funciona independentemente de você estar usando explicitamente o plug-in ou não.
Fred Porciúncula 28/01
2
Desde o maven-javadoc-plugin 3.0.0, você deve adicionar <additionalJOption>-Xdoclint:none</additionalJOption>ou <doclint>none</doclint>propriedade ao seu<properties>
Sergi
Sim, adicionar o perfil relacionado ao JDK 8 e definir <doclint> none </doclint> resolve o problema. Ele gera o javadoc jar da mesma forma que estava gerando no JDK 7. Obrigado.
Saurabhcdt 13/02/19
1
Você pode esclarecer: com o maven-javadoc-plugin 3.0.0 e superior, se eu simplesmente especificar <doclint>none</doclint>(sem ativação baseada na versão do JDK), ele ainda falhará no JDK menor que 1.8 ou o maven-javadoc-plugin detecta automaticamente se a doclintopção é suportada pela versão atual do Java?
Garret Wilson
31

Não acho que desligar o DocLint é uma boa solução, pelo menos não a longo prazo. É bom que o Javadoc tenha se tornado um pouco mais rigoroso, portanto, a maneira correta de corrigir o problema de compilação é consertar o problema subjacente . Sim, você precisará corrigir esses arquivos de código-fonte.

Aqui estão as coisas a serem observadas com as quais você poderia se safar:

  • HTML malformado (por exemplo, uma tag final ausente, colchetes sem escape, etc.)
  • {@link }S inválidos . (o mesmo vale para tags semelhantes, como @see)
  • @authorValores inválidos . Isso costumava ser aceito: @author John <[email protected]>mas não mais por causa dos colchetes não escapados.
  • As tabelas HTML no Javadoc agora exigem um resumo ou legenda. Veja esta pergunta para explicação.

Você simplesmente precisará corrigir os arquivos de código-fonte e continuar construindo seu Javadoc até que ele possa ser construído sem falhas. Pesado, sim, mas pessoalmente gosto quando elevo meus projetos ao nível do DocLint porque significa que posso ter mais certeza de que o Javadoc que produzo é realmente o que pretendo.

Obviamente, existe o problema se você estiver gerando Javadoc em algum código-fonte que você não produziu, por exemplo, porque ele vem de algum gerador de código, por exemplo, wsimport . Estranho que a Oracle não tenha preparado suas próprias ferramentas para conformidade com o JDK8 antes de realmente lançar o JDK8. Parece que não será corrigido até o Java 9 . Somente neste caso específico, sugiro desativar o DocLint conforme documentado em outras partes desta página.

peterh
fonte
1
Concordo totalmente aqui, dito isso, para o código gerado, você pode simplesmente dizer ao plugin para não processar o código em um determinado pacote, adicionando uma seção excludePackageNames na seção de configuração do plugin javadoc. veja maven.apache.org/plugins/maven-javadoc-plugin/examples/...
Newtopian
@Newtopian. Bom ponto. No entanto, no meu caso, eu realmente precisava do código gerado wsimportpara se tornar parte do Javadoc.
Peterh
Isso é muito mais fácil dizer do que fazer, já que muitos de nós enfrentamos esses problemas tentando criar código de código-fonte desconhecido que tem uma dependência do Maven em algum lugar e não temos idéia de como tudo funciona, portanto, não temos uma maneira fácil de resolver as causas subjacentes. Há muita miopia no contexto. As pessoas precisam generalizar mais o escopo das respostas e fornecer mais detalhes sobre como fazer as correções.
Clearlight 03/02/19
30

Substituir maven-javadoc-pluginapenas a configuração não resolve o problema mvn site(usado, por exemplo, durante o estágio de lançamento). Aqui está o que eu tinha que fazer:

<profile>
  <id>doclint-java8-disable</id>
  <activation>
    <jdk>[1.8,)</jdk>
  </activation>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <additionalparam>-Xdoclint:none</additionalparam>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <reportPlugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <configuration>
                <additionalparam>-Xdoclint:none</additionalparam>
              </configuration>
            </plugin>
          </reportPlugins>
        </configuration>
      </plugin>
    </plugins>
  </build>
</profile>
Jakub Skoczen
fonte
3
Esse é um ponto importante, pois a falta dessa configuração na ativação do plug-in do site fará com que o release: perform falhe enquanto o release: prepare funcionou bem. Pode ser um problema muito irritante para encontrar e corrigir.
Peter N. Steinmetz
Observe que a configuração do maven-javadoc-pluginvia a <reportPlugins>seção do nãomaven-site-plugin é recomendada para versões recentes do Maven 3. #
913 Martin Höller
@ MartinHöller Então, como resolver erros na liberação: execute o estágio relacionado ao mavene-javadoc-plugin: 3.0.1 da maneira correta?
Vitalii Diravka
@VitaliiDiravka Depende dos erros ... Faça uma pergunta separada para isso.
Martin Höller
22

Você pode tentar configurar a failOnErrorpropriedade (consulte a documentação do plug-in ) para false:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.9</version>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
              <failOnError>false</failOnError>
            </configuration>
        </execution>
    </executions>
</plugin>

Como você pode ver a partir dos documentos, o valor padrão é true.

Martin Ellis
fonte
Obrigado pela ideia @Martin. Com essa propriedade, pelo menos, posso construir e instalar o projeto novamente, mas ainda estou perdendo o jar do java doc (preciso implementá-lo no Maven central). Atualizei minha pergunta com os detalhes do experimento.
Sergio
Esta foi a resposta mais suficiente para mim. Eu só queria testar a construção durante o desenvolvimento contínuo, quando os javadocs ainda estavam incompletos.
ZachSand
17

Como depende da versão do seu JRE que é usada para executar o comando maven, você provavelmente não deseja desativar DocLintpor padrão no seu pom.xml

Portanto, na linha de comando, você pode usar o switch -Dadditionalparam=-Xdoclint:none.

Exemplo: mvn clean install -Dadditionalparam=-Xdoclint:none

Meu nome é
fonte
3
Isso é particularmente útil porque você também pode usá-lo Jenkins. Defina 'Global MAVEN_OPTS' (em 'Configure System') como -Dadditionalparam=-Xdoclint:nonee todas as suas compilações funcionarão com o Java 8. #
Wilfred Hughes
mvn org.apache.maven.plugins:maven-javadoc-plugin:3.1.0:jar -DadditionalJOption=-Xdoclint:none- ele trabalhou para mim
Roman Khomyshynets
10

O nome da propriedade de configuração foi alterado na versão mais recente do maven-javadoc-plugin, que é 3.0.0.

Portanto, o <parâmetro adicional> não funcionará. Então, temos que modificá-lo como abaixo.

   <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>3.0.0</version>
      <configuration>
         <doclint>none</doclint>
      </configuration>
  </plugin>
Balachandar
fonte
Veja a doclintdocumentação aqui: maven.apache.org/plugins/maven-javadoc-plugin/…
Peter W
Resolvi isso para mim construindo o OpenGrok a partir da fonte do github em fevereiro de 19. Deve-se mencionar que o seu patch entra no pom.xmldiretório src / build do projeto. No meu caso, tudo o que eu precisava fazer era procurar maven-javadoc-plugine depois ir para o <configuration></configuration>bloco já presente e adicionar <doclint>none</doclint>. Por mais fácil que tudo isso seja conhecido, o contexto aqui é: estou tentando consertar um bug diferente no OpenGrok e nunca usei o Maven antes e não quero ter que recorrer a outro subprojeto só para descobrir como aplicar correções rápidas.
Clearlight 03/02/19
4

Gostaria de acrescentar algumas dicas para outras respostas

No meu caso

-Xdoclint: nenhum

Não funcionou.

Vamos começar com isso, no meu projeto, eu realmente não precisava do javadoc. Apenas alguns plugins necessários tinham uma dependência do tempo de compilação.

Então, a maneira mais simples de resolver meu problema era:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <configuration>
        <skip>true</skip>
    </configuration>
</plugin>
mpasko256
fonte
4

No maven-javadoc-plugin 3.0.0, você deveria estar usando adicionalJOption para definir uma opção adicional do Javadoc; portanto, se você deseja que o Javadoc desative o doclint, adicione a seguinte propriedade.

<properties>
    ...
    <additionalJOption>-Xdoclint:none</additionalJOption>
    ...
<properties>

Você também deve mencionar a versão do maven-javadoc-plugin como 3.0.0 ou superior.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.0.0</version>    
</plugin>
amanzoor
fonte
3

Portanto, economize algumas horas que eu não fiz e tente isso se parecer que não funciona:

 <additionalJOption>-Xdoclint:none</additionalJOption>

A tag é alterada para versões mais recentes.

rawrintheclouds
fonte
Às vezes, por -Xdoclintsi só não é suficiente, mas argumentos adicionais são necessários. As versões mais recentes do maven-javadoc-pluginprevêem additionalJOptionsisso, as mais antigas não. Uma solução alternativa é: as <additionalJOption>"-Xdoclint:none" "--allow-script-in-comments"</additionalJOption>aspas são importantes; caso contrário, o plug-in as adiciona e assume apenas um argumento em vez de dois, resultando em wrong argserros.
Thorsten Schöning
O primeiro funciona apenas no Windows, no Linux: javadoc: error - Illegal package name: ""-Xdoclint:none" "--allow-script-in-comments""as aspas externas são adicionadas pela instrução de log e não estão presentes no shell. Eu acho que o problema é que, no Windows, javadocé executado por cmd.exe, que analisa uma string grande como linha de comando e divide o additionalJOptionque foi planejado. No Linux, os argumentos são passados ​​individualmente para o processo diretamente e additionalJOptionsão passados ​​como um argumento, levando ao erro.
Thorsten Schöning
Segundo Process Monitor, cmd.exenão é usado. O Java provavelmente cria uma linha de comando grande e a passa para CreateProcess, para que seja analisada pelo Windows como pretendido: Dividindo args em espaços e honrando aspas.
Thorsten Schöning
3

Adicionado abaixo

JAVA_TOOL_OPTIONS=-DadditionalJOption=-Xdoclint:none

Trabalho de Jenkins:

Configuração> Ambiente de Construção> Injetar variáveis ​​de ambiente no processo de construção> Conteúdo das Propriedades

Resolvi meu problema de criação de código através do Jenkins Maven :-)

snj
fonte
Isso funciona para o maven-javadoc-plugin 2.4, mas a partir do 2.5 (e até o 3.0.0), ocorre um erro: "Código de saída: 1 - javadoc: error - sinalizador inválido: -Xdoclint: none". Portanto, a solução é quebradiça.
Akom 23/05
1
Ao usar isso com mvn release:performa sintaxe precisa ser mvn release:perform -Darguments="-Dmaven.javadoc.skip=true".
PatS
2

Não tenho certeza se isso vai ajudar, mas mesmo assim eu enfrentei exatamente o mesmo problema muito recentemente com oozie-4.2.0 versão . Depois de ler as respostas acima, adicionei a opção maven através da linha de comando e funcionou para mim. Então, basta compartilhar aqui.

Estou usando o java 1.8.0_77 , ainda não tentei com o java 1.7

bin / mkdistro.sh -DskipTests -Dmaven.javadoc.opts = '- Xdoclint: -html'

Raghu Kumar
fonte
1

Para ignorar tags @parame @returntags ausentes , basta desabilitar o missing grupo de documentos . Dessa forma, o javadoc ainda será verificado quanto a problemas de nível superior e sintaxe:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
            <doclint>all,-missing</doclint>
        </configuration>
    </plugin>

Observe que isso é para o plugin versão 3.0 ou mais recente.

gjoranv
fonte
0

Estou um pouco atrasado para a festa, mas também fui forçado a procurar uma solução alternativa, acabei aqui e a encontrei.

Aqui está o que funciona para mim: -

export JAVA_TOOL_OPTIONS=-DadditionalJOption=-Xdoclint:none

E então inicie sua compilação do Maven, qualquer compilação de distribuição do Linux etc. O interessante é que ela não requer modificação dos arquivos de configuração do Maven - eu não poderia fazer isso, pois meu objetivo era reconstruir um monte de pacotes rpm do Centos , então tive que vá muito fundo.

Mariusz Borsa
fonte