Maven no funciona en Java 8 cuando las etiquetas Javadoc están incompletas

312

Desde que uso Maven, he podido construir e instalar en mis proyectos de repositorio locales que tienen etiquetas Javadoc incompletas (por ejemplo, un parámetro faltante).

Sin embargo, desde que migré a Java 8 (1.8.0-ea-b90) Maven es absolutamente estricto con las etiquetas de documentación faltantes y me muestra muchos errores de Javadoc relacionados con problemas de Javadoc cuando intento construir o instalar un proyecto donde el Javadoc no es "Perfecto". Algunos de los proyectos que estoy tratando de compilar e instalar en mi repositorio local son proyectos de terceros desde los cuales no tengo control. Por lo tanto, la solución de solo arreglar todos los Javadocs en todos estos proyectos no parece ser factible en mi escenario.

Esta es una pequeña parte de la salida que veo cuando ejecuto mvn clean package installmi proyecto:

[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] ^

El complemento Javadoc Maven está configurado de esta manera en mi 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 dije antes, todo funciona bien si vuelvo a Java 7. ¿Tal vez es un error relacionado con Maven ejecutándose en Java 8? ¿Cómo podría hacer que funcione (es decir, poder construir el Javadoc del proyecto e instalar su código en mi repositorio local) con Java 8? He probado con Maven 3.0.3 y 3.0.5 en OSX.

ACTUALIZAR:

Si cambio la configuración de mi complemento Javadoc con <failOnError>false</failOnError>(gracias 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>

Luego, el proyecto se instala en mi repositorio local. Sin embargo, el Javadoc JAR todavía no se genera.

Un fragmento de la salida que veo en la consola con esta nueva configuración es:

[ERROR] MavenReportException: Error al crear el archivo: Código de salida: 1 - /Users/....java:18: advertencia: no @param ... La línea de comando era: / Library / Java / Home / bin / javadoc @options @paquetes

Consulte los archivos Javadoc generados en '/ Users / sergioc / Documents / workspaces / heal / minitoolbox / target / apidocs' dir.

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

¿Alguna solución sobre cómo construir las fuentes, instalar el proyecto y generar el Javadoc JAR en un solo paso, ya que funcionaba con Java 7?

Sergio
fuente
Hola @ 75inchpianist, he actualizado la pregunta, de hecho son errores (aunque sorprendentemente, la última línea del error se refiere a una advertencia, como puede ver en la salida generada). El proyecto no está instalado en mi repositorio local, por lo que no se considera una simple advertencia :(
Sergio
Para GoogleJuice: recibí el error "error: mal uso de '>'" porque tenía una gran flecha en el comentario de JavaDoc
Drew Stephens
1
Tal vez sea útil para alguien: puede encontrar fácilmente todas estas etiquetas incompletas en IntelliJ ejecutando la inspección Ctrl + Alt + Shift + i "La declaración tiene problemas JavaDoc"
Sergey Ponomarev
1
Esto no es maven, es el programa javadoc que se volvió mucho más estricto en Java 8.
Thorbjørn Ravn Andersen

Respuestas:

388

La mejor solución sería corregir los errores de javadoc. Si por alguna razón eso no es posible (es decir: código fuente generado automáticamente), entonces puede deshabilitar esta verificación.

DocLint es una nueva característica en Java 8 , que se resume como:

Proporcione un medio para detectar errores en los comentarios de Javadoc al principio del ciclo de desarrollo y de una manera que se vincule fácilmente al código fuente.

Esto está habilitado de manera predeterminada y ejecutará muchas comprobaciones antes de generar Javadocs. Debe desactivar esto para Java 8 como se especifica en este hilo . Tendrá que agregar esto a su configuración de 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+: Reemplazar

<additionalparam>-Xdoclint:none</additionalparam>

con

<doclint>none</doclint>
Subhas
fuente
18
¿Hay alguna manera de hacer que esto funcione con JDK 8 y JDK 7? Falla en JDK 7 porque javadocno conoce esta opción.
Feuermurmel
8
Si bien esto responde a la pregunta que se hace aquí, me gustaría aconsejar a los futuros visitantes que comprueben primero la respuesta de Peter: stackoverflow.com/a/34809831/1180785 (la mayoría de las personas que se enfrentan a este problema solo tendrán un puñado de lugares para arreglar, por lo que es mejor para solucionarlos que deshabilitar el cheque!)
Dave
8
Para maven-javadoc-plugin, use <doclint>none</doclint>. Ver maven.apache.org/plugins/maven-javadoc-plugin/…
coolersport
11
También desde maven-javadoc-plugin 3.0.0, <additionalparam/>se reemplaza por <additionalOptions/>. Ver issues.apache.org/jira/browse/MJAVADOC-475
fdelsert
1
Eso es correcto. Me gustaría notificar que durante la migración de maven 2 a maven 3, no olviden que esta etiqueta de complemento no debe incluirse en la etiqueta de informe sino directamente a pluginManagement (pom.xml)
dimeros
97

El enfoque más fácil para que las cosas funcionen tanto con java 8 como con java 7 es usar un perfil en la compilación:

<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
fuente
1
La mejor solución probablemente sería un híbrido entre su solución y la que Zapp proporcionó a continuación. Si lo deja así, el comando mvn site: site seguirá fallando. Debe crear un perfil activado por el 1.8 jdk que establece una propiedad global.
Max Nad
64

Esta es la forma más concisa que conozco para ignorar las advertencias de doclint independientemente de la versión de Java utilizada. No es necesario duplicar la configuración del complemento en varios perfiles con ligeras modificaciones.

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

Probado en oracle / open jdk 6, 7, 8 y 11.

Oliver Gondža
fuente
1
¿Y dónde se debe poner eso específicamente?
claro
1
@clearlight, ambos buildy profilesson bloques de nivel superior en maven pom.xml. maven.apache.org/pom.html#Build .
Oliver Gondža
Gracias. Eventualmente descubrí eso, pero es bueno tener eso asociado con esta respuesta.
claro
38

Agregue a la sección de propiedades globales en el archivo pom:

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

La solución común proporcionada aquí en las otras respuestas (agregando esa propiedad en la sección de complementos) no funcionó por alguna razón. Solo configurándolo globalmente pude construir el jar javadoc con éxito.

zapp
fuente
1
Esta es la única solución que funcionó para mí. También leí la respuesta aquí: blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html
acvcu
37

La solución más corta que funcionará con cualquier versión de Java:

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

Solo agrégalo a tu POM y listo.

Esta es básicamente la respuesta de @ ankon más la respuesta de @ zapp .


Para usuarios de maven-javadoc-plugin 3.0.0:

Reemplazar

<additionalparam>-Xdoclint:none</additionalparam>

por

<doclint>none</doclint>

Fred Porciúncula
fuente
Es la mejor solución para mí. Funciona para bots java 7 y java 8. Pero la forma en que funciona es una especie de magia:. ¿Cómo se agrega este parámetro "
AdditionalParam
1
@pdem El parámetro adicional se agrega a Maven, no al complemento Javadoc. Esta solución funciona ya sea que esté utilizando explícitamente el complemento o no.
Fred Porciúncula
2
Desde maven-javadoc-plugin 3.0.0, debe agregar <additionalJOption>-Xdoclint:none</additionalJOption>o <doclint>none</doclint>propiedad a su<properties>
Sergi
Sí, al agregar el perfil y la configuración de JDK 8 <doclint> none </doclint> se resuelve el problema. Genera javadoc jar igual que estaba generando en JDK 7. Gracias.
Saurabhcdt
1
¿Puede aclarar: con maven-javadoc-plugin 3.0.0 y superior, si simplemente especifico <doclint>none</doclint>(sin activación basada en la versión JDK), todavía fallará en JDK menos de 1.8, o maven-javadoc-plugin detecta automáticamente si La doclintopción es compatible con la versión actual de Java?
Garret Wilson
31

No creo que apagar DocLint sea una buena solución, al menos no a largo plazo. Es bueno que Javadoc se haya vuelto un poco más estricto, por lo que la forma correcta de solucionar el problema de compilación es solucionar el problema subyacente . Sí, en última instancia, deberá corregir esos archivos de código fuente.

Estas son las cosas a tener en cuenta que anteriormente podría salirse con la suya:

  • HTML con formato incorrecto (por ejemplo, una etiqueta final faltante, corchetes sin escape, etc.)
  • Inválido {@link }s. (Lo mismo ocurre con etiquetas similares como@see )
  • @authorValores inválidos . Esto solía ser aceptado:@author John <[email protected]> pero ya no es así debido a los corchetes sin escape.
  • Las tablas HTML en Javadoc ahora requieren un resumen o título. Vea esta pregunta para explicación.

Simplemente tendrá que arreglar sus archivos de código fuente y seguir construyendo su Javadoc hasta que pueda compilarse sin fallas. Es engorroso sí, pero personalmente me gusta cuando he llevado mis proyectos al nivel de DocLint porque significa que puedo estar más seguro de que el Javadoc que produzco es en realidad lo que pretendo.

Por supuesto, existe el problema si está generando Javadoc en algún código fuente que no haya producido usted mismo, por ejemplo, porque proviene de algún generador de código, por ejemplo, wsimport . Es extraño que Oracle no haya preparado sus propias herramientas para el cumplimiento de JDK8 antes de lanzar JDK8. Parece que no se solucionará hasta Java 9 . Solo en este caso particular sugiero desactivar DocLint como se documenta en otra parte de esta página.

Peter
fuente
1
Completamente de acuerdo aquí, dicho eso, para el código generado, simplemente puede decirle al complemento que no procese el código en un paquete dado agregando una sección excludePackageNames en la sección de configuración del complemento javadoc. ver maven.apache.org/plugins/maven-javadoc-plugin/examples/...
Newtopian
@Newtopian. Buen punto. Sin embargo, en mi caso, realmente necesitaba el código generado wsimportpara formar parte del Javadoc.
Peter
Es mucho más fácil decirlo que hacerlo, ya que muchos de nosotros que nos encontramos con estos problemas estamos tratando de construir código de código abierto desconocido que tiene una dependencia de Maven en algún lugar y no tenemos idea de cómo funciona todo, así que no tenemos una manera fácil de abordar las causas subyacentes. Hay demasiada miopía sobre el contexto. La gente necesita generalizar más el alcance de las respuestas y proporcionar más detalles sobre cómo hacer las correcciones.
luz clara
30

Primordial maven-javadoc-plugin configuración solamente, no soluciona el problema con mvn site(utilizado, por ejemplo, durante la etapa de lanzamiento). Esto es lo que tuve que hacer:

<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
fuente
3
Este es un punto importante ya que la falta de esta configuración en la activación del complemento del sitio causará la liberación: el rendimiento falla mientras que la liberación: la preparación ha funcionado bien. Puede ser un problema muy molesto encontrarlo y solucionarlo.
Peter N. Steinmetz
Tenga en cuenta, que la configuración de la maven-javadoc-plugina través de la <reportPlugins>sección de la maven-site-pluginse no se recomienda para las versiones recientes de Maven 3.
Martin Höller
@ MartinHöller Entonces, ¿cómo resolver los errores en el lanzamiento: realizar la etapa relacionada con mavene-javadoc-plugin: 3.0.1 de la manera adecuada?
Vitalii Diravka
@VitaliiDiravka Depende de los errores ... Haga una pregunta por separado para esto.
Martin Höller
22

Puede intentar configurar la failOnErrorpropiedad (consulte la documentación del complemento ) 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 puede ver en los documentos, el valor predeterminado es true.

Martin Ellis
fuente
Gracias por la idea @ Martin. Con esa propiedad, al menos puedo construir e instalar el proyecto nuevamente, sin embargo, todavía me falta el java doc jar (necesito que se implemente en Maven central). Actualicé mi pregunta con los detalles del experimento.
Sergio
Esta fue la respuesta más suficiente para mí. Solo quería probar la construcción durante el desarrollo en curso cuando los javadocs aún estaban incompletos.
ZachSand
17

Dado que depende de la versión de su JRE que se utiliza para ejecutar el comando maven, es probable que no desee deshabilitar DocLint por defecto en su pom.xml

Por lo tanto, desde la línea de comandos puede usar el interruptor -Dadditionalparam=-Xdoclint:none .

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

Me llamo
fuente
3
Esto es particularmente útil porque también puedes usarlo Jenkins. Establezca 'Global MAVEN_OPTS' (en 'Configurar sistema') -Dadditionalparam=-Xdoclint:noney todas sus compilaciones funcionarán con Java 8.
Wilfred Hughes
mvn org.apache.maven.plugins:maven-javadoc-plugin:3.1.0:jar -DadditionalJOption=-Xdoclint:none- funcionó para mí
Romano Khomyshynets
10

El nombre de la propiedad de configuración se ha cambiado en la última versión de maven-javadoc-plugin que es 3.0.0.

Por lo tanto, el <additionalparam> no funcionará. Entonces tenemos que modificarlo como se muestra a continuación.

   <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>3.0.0</version>
      <configuration>
         <doclint>none</doclint>
      </configuration>
  </plugin>
Balachandar
fuente
Ver doclintdocumentación aquí: maven.apache.org/plugins/maven-javadoc-plugin/…
Peter W
Lo resolví para mí construyendo OpenGrok desde la fuente de github en febrero de 19. Debería mencionar que su parche entra pom.xmlen el directorio src / build del proyecto. En mi caso, todo lo que tenía que hacer era buscar maven-javadoc-pluginy luego ir al <configuration></configuration>bloque ya presente y agregar <doclint>none</doclint>. Tan fácil como todo esto es una vez que se sabe, el contexto aquí es que estoy tratando de corregir un error diferente en OpenGrok y nunca he usado Maven antes y no quiero tener que recurrir a otro subproyecto solo para tener que pensar cómo aplicar soluciones rápidas
Claro
4

Me gustaría agregar una idea de otras respuestas

En mi caso

-Xdoclint: ninguno

No funcionó

Comencemos con eso, en mi proyecto, realmente no necesitaba javadoc en absoluto. Solo algunos complementos necesarios tenían una dependencia de tiempo de compilación.

Entonces, la forma más simple de resolver mi problema fue:

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

A partir de maven-javadoc-plugin 3.0.0, debería haber estado utilizando una opción adicional para configurar una opción Javadoc adicional, por lo que si desea que Javadoc deshabilite doclint, debe agregar la siguiente propiedad.

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

También debe mencionar la versión de maven-javadoc-plugin como 3.0.0 o superior.

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

Entonces, ahórrate algunas horas que no hice y prueba esto si parece que no funciona:

 <additionalJOption>-Xdoclint:none</additionalJOption>

La etiqueta se cambia para las versiones más nuevas.

rawrintheclouds
fuente
A veces en -Xdoclintsí mismo no es suficiente, pero se necesitan argumentos adicionales. Las versiones más nuevas de la maven-javadoc-pluginproporcionan additionalJOptionspara eso, las más antiguas no. Una solución alternativa es: las <additionalJOption>"-Xdoclint:none" "--allow-script-in-comments"</additionalJOption>citas son importantes, de lo contrario, el complemento las agrega y asume solo un argumento en lugar de dos, lo que genera wrong argserrores.
Thorsten Schöning
El primero solo funciona en Windows, en Linux: javadoc: error - Illegal package name: ""-Xdoclint:none" "--allow-script-in-comments""las comillas externas se agregan mediante la declaración de registro y no están presentes en el shell. Supongo que el problema es que en Windows javadocse ejecuta mediante cmd.exe, que analiza una cadena grande como línea de comando y divide la cadena según additionalJOptionlo previsto. En Linux, los argumentos se pasan individualmente al proceso directamente y additionalJOptionse pasan como un argumento, lo que lleva al error.
Thorsten Schöning
Según Process Monitor, cmd.exeno se utiliza. Lo más probable es que Java simplemente construya una línea de comando grande y se la pase CreateProcess, de modo que Windows la analice según lo previsto: dividir argumentos en espacios mientras se respetan las comillas.
Thorsten Schöning
3

Agregado a continuación

JAVA_TOOL_OPTIONS=-DadditionalJOption=-Xdoclint:none

En el trabajo de Jenkins:

Configuración> Entorno de compilación> Inyectar variables de entorno en el proceso de compilación> Contenido de propiedades

Resolvió mi problema de creación de código a través de Jenkins Maven :-)

snj
fuente
Esto funciona para maven-javadoc-plugin 2.4 pero a partir de 2.5 (y hasta 3.0.0), esto causa un error: "Código de salida: 1 - javadoc: error - indicador inválido: -Xdoclint: ninguno". Entonces la solución es frágil.
Akom
1
Cuando se usa esto con mvn release:performla sintaxis debe ser mvn release:perform -Darguments="-Dmaven.javadoc.skip=true".
PatS
2

No estoy seguro de si esto va a ayudar, pero incluso recientemente me enfrenté al mismo problema con la versión oozie-4.2.0 . Después de leer las respuestas anteriores, acabo de agregar la opción maven a través de la línea de comandos y funcionó para mí. Entonces, solo compartiendo aquí.

Estoy usando Java 1.8.0_77 , no he probado con Java 1.7

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

Raghu Kumar
fuente
1

Para ignorar las etiquetas faltantes @paramy @return, es suficiente deshabilitar el missing grupo doclint . De esta forma, el javadoc aún se verificará para detectar problemas de nivel y sintaxis superiores:

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

Tenga en cuenta que esto es para la versión del complemento 3.0 o posterior.

gjoranv
fuente
0

Llegué un poco tarde a la fiesta, pero también me vi obligado a buscar una solución, terminé aquí y luego lo encontré.

Esto es lo que funciona para mí:

export JAVA_TOOL_OPTIONS=-DadditionalJOption=-Xdoclint:none

Y luego comience su compilación de Maven, cualquier compilación de distribución de Linux, etc. Lo bueno es que no requiere la modificación de los archivos de configuración de Maven : no pude hacerlo ya que mi objetivo era reconstruir un montón de paquetes Centos rpm, así que tuve que ir muy profundo

Mariusz Borsa
fuente