Maven не работает в Java 8, когда теги Javadoc неполны


312

Так как я использую Maven, я могу создавать и устанавливать в своих проектах локального репозитория, которые имеют неполные теги Javadoc (например, отсутствующий параметр).

Однако, поскольку я перешел на Java 8 (1.8.0-ea-b90), Maven абсолютно строго относится к отсутствующим тегам документации и показывает мне множество ошибок Javadoc, связанных с проблемами Javadoc, когда я пытаюсь создать или установить проект, в котором Javadoc отсутствует. "идеальный". Некоторые из проектов, которые я пытаюсь скомпилировать и установить в своем локальном репозитории, являются сторонними проектами, над которыми я не имею контроля. Таким образом, обходной путь простого исправления всех Javadocs во всех этих проектах не представляется возможным в моем сценарии.

Это небольшая часть вывода, который я вижу, когда выполняю mvn clean package installв своем проекте:

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

Плагин Javadoc Maven настроен так в моем 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>

Как я уже говорил, все работает нормально, если я вернусь к Java 7. Может быть, это ошибка, связанная с работой Maven в Java 8? Как я мог заставить его работать (т.е. иметь возможность собирать Javadoc проекта и устанавливать его код в моем локальном репозитории) с Java 8? Я тестировал с Maven 3.0.3 и 3.0.5 в OSX.

ОБНОВИТЬ:

Если я изменю свою конфигурацию плагина Javadoc с помощью <failOnError>false</failOnError>(спасибо Мартину):

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

Затем проект устанавливается в моем локальном хранилище. Тем не менее, Javadoc JAR по-прежнему не генерируется.

Фрагмент вывода, который я вижу в консоли с этой новой конфигурацией:

[ОШИБКА] MavenReportException: ошибка при создании архива: код выхода: 1 - /Users/....java:18: предупреждение: нет @param ... Командная строка была: / Library / Java / Home / bin / javadoc @options @packages

Обратитесь к сгенерированным файлам Javadoc в директории '/ Users / sergioc / Documents / workspaces / heal / minitoolbox / target / apidocs'.

в org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5043) в org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeReport: jojojjjjj0) .javadoc.JavadocJar.execute (JavadocJar.java:181) в org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) в org.apache.maven.lifejo.jec.java : 209) в org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) в org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) в org.apache. maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) в org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:59) в org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) в org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java). в org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320) в org.apache.maven.DefaultMaven.execute (DefaultMaven.java:156) в org.apache.maven.cli.MavenCli.execute (MavenCli.java) : 537) в org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) в org.apache.maven.cli.MavenCli.main (MavenCli.java:141) в sun.reflect.NativeMethodAccessorImpl.invoke0 ( Собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lanfre.вызвать (Method.java:491) в org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) в org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:230) в org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) в org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352)

Любой обходной путь о том, как собрать источники, установить проект и сгенерировать Javadoc JAR за один шаг, как это работало с Java 7?


Привет @ 75inchpianist, я обновил вопрос, на самом деле это ошибки (хотя, как ни странно, последняя строка ошибки относится к предупреждению, как вы можете видеть в сгенерированном выводе). Проект не установлен в моем локальном репозитории, поэтому он не рассматривается как простое предупреждение :(
— Sergio

Для GoogleJuice: я получил ошибку «ошибка: неправильное использование«> », потому что у меня была большая стрелка в комментарии JavaDoc
— Дрю Стивенс

1
Может быть, это кому-нибудь пригодится: вы можете легко найти все эти неполные теги в IntelliJ, выполнив проверку Ctrl + Alt + Shift + i «У объявления есть проблемы с JavaDoc»
— Сергей Пономарев,

1
Это не maven, это программа на javadoc, которая стала более строгой в Java 8.
— Thorbjørn Ravn Andersen

Ответы:


388

Лучшее решение было бы исправить ошибки Javadoc. Если по какой-либо причине это невозможно (например, автоматически сгенерированный исходный код), вы можете отключить эту проверку.

DocLint - это новая функция в Java 8 , которая представлена ​​в виде:

Обеспечить средства для обнаружения ошибок в комментариях Javadoc на ранних этапах цикла разработки и таким образом, чтобы их можно было легко связать с исходным кодом.

Это включено по умолчанию, и перед генерацией Javadocs будет выполнено множество проверок. Вы должны отключить это для Java 8, как указано в этой теме . Вам придется добавить это в вашу конфигурацию 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>

Для maven-javadoc-plugin 3.0.0+: заменить

<additionalparam>-Xdoclint:none</additionalparam>

с участием

<doclint>none</doclint>

18
Есть ли способ заставить это работать с JDK 8, а также JDK 7? Это терпит неудачу на JDK 7, потому что javadocэто не знает эту опцию.
— Feuermurmel

8
Хотя это отвечает на вопрос, заданный здесь, я бы посоветовал будущим посетителям сначала проверить ответ Петера: stackoverflow.com/a/34809831/1180785 (большинство людей, затронутых этой проблемой, будут иметь только несколько мест для исправления, так что лучше чтобы исправить их, чем отключить проверку!)
— Дейв

8
Для maven-javadoc-plugin используйте <doclint>none</doclint>. См. Maven.apache.org/plugins/maven-javadoc-plugin/…
— coolersport

11
Также, поскольку maven-javadoc-plugin 3.0.0 <additionalparam/>заменен на <additionalOptions/>. См. Issues.apache.org/jira/browse/MJAVADOC-475
— fdelsert

1
Это правильно. Я хотел бы отметить, что во время миграции с maven 2 на maven 3 не забывайте, что этот тег плагина должен быть включен не в тег отчетности, а непосредственно в pluginManagement (pom.xml)
— dimeros

97

Самый простой подход к работе с java 8 и java 7 - использовать профиль в сборке:

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

1
Лучшим решением, вероятно, будет гибрид между вашим решением и предложенным ниже Zapp. Если вы оставите это так, команда mvn site: site все равно будет аварийно завершать работу. Вы должны создать профиль, активированный 1.8 jdk, который устанавливает глобальное свойство.
— Макс Над

64

Вот самый краткий способ, которым я знаю, игнорировать предупреждения doclint независимо от используемой версии java. Нет необходимости дублировать конфигурацию плагина в нескольких профилях с небольшими изменениями.

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

Проверено на Oracle / Open JDK 6, 7, 8 и 11.


1
И куда это конкретно положить?
— ясный свет

1
@clearlight, оба buildи profilesявляются блоками верхнего уровня в maven pom.xml. maven.apache.org/pom.html#Build .
— Оливер Гонджа

Спасибо. В конце концов я это обнаружил, но хорошо, что это связано с этим ответом.
— ясный свет

38

Добавьте в раздел глобальных свойств в файле pom:

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

Общее решение, представленное здесь в других ответах (добавление этого свойства в разделе плагинов), по какой-то причине не сработало. Только установив его глобально, я смог бы успешно построить javadoc jar.


1
это единственное решение, которое сработало для меня. Я также прочитал ответ здесь: blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html
— acvcu

37

Самое короткое решение, которое будет работать с любой версией Java:

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

Просто добавьте это в свой POM, и все готово.

Это в основном ответ @ ankon плюс ответ @ zapp .


Для пользователей maven-javadoc-plugin 3.0.0:

замещать

<additionalparam>-Xdoclint:none</additionalparam>

по

<doclint>none</doclint>


Это лучшее решение для меня. Это работает для ботов Java 7 и Java 8. Но то, как это работает, является своего рода магией:. Как этот параметр «
— AdditionalParam

1
@pdem Дополнительный параметр добавляется в Maven, а не в плагин Javadoc. Это решение работает независимо от того, используете ли вы плагин или нет.
— Фред Порсьонкула

2
Начиная с maven-javadoc-plugin 3.0.0, вы должны добавить <additionalJOption>-Xdoclint:none</additionalJOption>или <doclint>none</doclint>присвоить свой объект<properties>
— Sergi

Да, добавление профиля, связанного с JDK 8, и настройка <doclint> none </ doclint> решает проблему. Он генерирует javadoc jar так же, как и в JDK 7. Спасибо.
— Saurabhcdt

1
Можете ли вы уточнить: с maven-javadoc-plugin 3.0.0 и выше, если я просто укажу <doclint>none</doclint>(без активации на основе версии JDK), все равно произойдет ли сбой на JDK менее 1.8, или maven-javadoc-plugin автоматически обнаружит, doclintопция поддерживается текущей версией Java?
— Гаррет Уилсон

31

Я не думаю, что просто отключение DocLint является хорошим решением, по крайней мере, на длительный срок. Хорошо, что Javadoc стал немного более строгим, поэтому правильный способ решить проблему сборки - это исправить основную проблему . Да, в конечном итоге вам нужно будет исправить эти файлы исходного кода.

Вот вещи, на которые стоит обратить внимание:

  • Неверно сформированный HTML (например, отсутствующий конечный тег, неэкранированные скобки и т. Д.)
  • Неверный {@link }с. (то же самое касается аналогичных тегов, таких как @see)
  • Неверные @authorзначения. Раньше это принималось: @author John <john.doe@mine.com>но уже не так из-за неэкранированных скобок.
  • Таблицы HTML в Javadoc теперь требуют сводки или подписи. Смотрите этот вопрос для объяснения.

Вам просто нужно будет исправить файлы исходного кода и продолжать собирать Javadoc, пока он не сможет работать без сбоев. Громоздко да, но лично мне нравится, когда я довел свои проекты до уровня DocLint, потому что это означает, что я могу быть более уверен в том, что Javadoc, который я создаю, на самом деле является тем, что я намереваюсь.

Конечно, есть проблема, если вы генерируете Javadoc для некоторого исходного кода, который вы не создали самостоятельно, например, потому что он исходит из какого-то генератора кода, например, wsimport . Странно, что Oracle не подготовил свои собственные инструменты для соответствия JDK8 до фактического выпуска JDK8. Кажется, это не будет исправлено до Java 9 . Только в этом конкретном случае я предлагаю отключить DocLint, как описано в другом месте на этой странице.


1
Здесь вы полностью согласны с тем, что для сгенерированного кода вы можете просто указать плагину не обрабатывать код в данном пакете, добавив раздел excludePackageNames в раздел конфигурации плагина javadoc. см. maven.apache.org/plugins/maven-javadoc-plugin/examples/…
— ньютопия

@Newtopian. Хорошая точка зрения. Однако в моем случае я действительно нуждался в сгенерированном коде, wsimportчтобы стать частью Javadoc.
— Петр

Это гораздо проще сказать, чем сделать, поскольку многие из нас, сталкивающихся с этими проблемами, пытаются создать незнакомый код с открытым исходным кодом, который где-то зависит от Maven, и мы не знаем, как все это работает, поэтому у нас нет простого способа устранить основные причины. Слишком много близорукости в контексте. Люди должны обобщать объем ответов и предоставлять больше подробностей о том, как сделать исправления.
— ясный свет

30

maven-javadoc-pluginТолько переопределение конфигурации, не устраняет проблему mvn site(используется, например, на этапе выпуска). Вот что я должен был сделать:

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

3
Это важный момент, так как отсутствие этого параметра в активации сайта-плагина приведет к выпуску: выполнение завершится с ошибкой при выпуске: подготовка прошла успешно. Это может быть очень раздражающей проблемой, чтобы найти и исправить.
— Питер Н. Штайнмец,

Обратите внимание, что конфигурация maven-javadoc-pluginчерез <reportPlugins>секции maven-site-pluginявляется не рекомендуется для последних версий Maven 3.
— Мартин Хеллер

@ MartinHöller Итак, как устранить ошибки при выпуске: правильно выполнить этап, связанный с mavene-javadoc-plugin: 3.0.1?
— Виталий Диравка

@VitaliiDiravka Зависит от ошибок ... Пожалуйста, задайте отдельный вопрос для этого.
— Мартин Хеллер,

22

Вы можете попробовать установить failOnErrorсвойство (см. Документацию плагина ) к 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>

Как вы можете видеть из документов, значение по умолчанию - true.


Спасибо за идею @Martin. С этим свойством, по крайней мере, я могу собрать и установить проект снова, однако мне все еще не хватает java doc jar (он мне нужен для развертывания в Maven central). Я обновил свой вопрос с деталями эксперимента.
— Серхио

Это был самый достаточный ответ для меня. Я просто хотел протестировать сборку во время текущей разработки, когда javadocs были еще неполными.
— ZachSand

17

Поскольку это зависит от версии вашего JRE, которая используется для запуска команды maven, вы, вероятно, не хотите отключать ее DocLintпо умолчанию в вашем pom.xml.

Следовательно, из командной строки вы можете использовать переключатель -Dadditionalparam=-Xdoclint:none.

Пример: mvn clean install -Dadditionalparam=-Xdoclint:none


3
Это особенно полезно, потому что вы можете использовать его также Дженкинс. Установите для параметра «Global MAVEN_OPTS» (в разделе «Настройка системы») значение, -Dadditionalparam=-Xdoclint:noneи все ваши сборки будут работать с Java 8.
— Уилфред Хьюз,

mvn org.apache.maven.plugins:maven-javadoc-plugin:3.1.0:jar -DadditionalJOption=-Xdoclint:none- у меня это сработало
— Роман Хомышинец

10

Имя свойства конфигурации было изменено в последней версии maven-javadoc-plugin, которая является 3.0.0.

Следовательно, <extraparam> не будет работать. Поэтому мы должны изменить его, как показано ниже.

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

См. doclintДокументацию здесь: maven.apache.org/plugins/maven-javadoc-plugin/…
— Питер В.

Решил для меня сборку OpenGrok из исходного кода github в феврале 19 года. Следует упомянуть, что ваш патч входит в pom.xmlкаталог проекта src / build. В моем случае все, что мне нужно было сделать, это найти, maven-javadoc-pluginа затем перейти к <configuration></configuration>уже существующему блоку и добавить <doclint>none</doclint>. Как только все это когда-то станет известно, контекст здесь заключается в том, что я пытаюсь исправить другую ошибку в OpenGrok и никогда раньше не использовал Maven и не хочу повторяться в другом подпроекте, просто чтобы понять как применять быстрые исправления.
— ясный свет

4

Я хотел бы добавить понимание других ответов

В моем случае

не -Xdoclint: нет

Не сработало

Начнем с того, что в моем проекте мне вообще не нужен был Javadoc. Только некоторые необходимые плагины получили зависимость от времени сборки.

Итак, самый простой способ решить мою проблему:

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

4

По Maven-Javadoc-плагин 3.0.0 вы должны были с помощью additionalJOption установить дополнительную опцию Javadoc, так что если вы хотите , чтобы отключить Javadoc doclint, необходимо добавить следующее свойство.

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

Вы должны также упомянуть версию maven-javadoc-plugin как 3.0.0 или выше.

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

3

Итак, сэкономьте несколько часов, которые я не делал, и попробуйте это, если кажется, что это не работает:

 <additionalJOption>-Xdoclint:none</additionalJOption>

Тег изменен для более новых версий.



Иногда -Xdoclintсамо по себе недостаточно, но нужны дополнительные аргументы. Более новые версии maven-javadoc-pluginпредусматривают additionalJOptionsэто, старые не делают. Обходной путь: <additionalJOption>"-Xdoclint:none" "--allow-script-in-comments"</additionalJOption>кавычки важны, иначе плагин добавляет их и предполагает только один аргумент вместо двух, что приводит к wrong argsошибкам.
— Торстен Шенинг

Первый работает только в Windows, а в Linux: javadoc: error - Illegal package name: ""-Xdoclint:none" "--allow-script-in-comments""внешние кавычки добавляются оператором регистрации и не отображаются в оболочке. Я предполагаю, что проблема заключается в том, что в Windows javadocвыполняется cmd.exe, который анализирует одну большую строку как командную строку и разбивает additionalJOptionкак задумано. В Linux аргументы передаются индивидуально процессу напрямую и additionalJOptionпередаются как один аргумент, что приводит к ошибке.
— Торстен

По словам Process Monitor, cmd.exeне используется. Скорее всего, Java просто строит одну большую командную строку и передает ее CreateProcess, чтобы она анализировалась Windows, как и предполагалось: расщепление аргументов в пробелах с учетом кавычек.
— Торстен

3

Добавлено ниже

JAVA_TOOL_OPTIONS=-DadditionalJOption=-Xdoclint:none

В работу Дженкинс:

Конфигурация> Среда сборки> Внедрить переменные среды в процесс сборки> Свойства Содержимое

Решил мою проблему построения кода через Jenkins Maven :-)


Это работает для maven-javadoc-plugin 2.4, но начиная с версии 2.5 (и вплоть до 3.0.0), это вызывает ошибку: «Код выхода: 1 - javadoc: error - недопустимый флаг: -Xdoclint: none». Так что решение хрупкое.
— Аком

1
При использовании этого с mvn release:performсинтаксисом должно быть mvn release:perform -Darguments="-Dmaven.javadoc.skip=true".
— PatS

2

Я не уверен, поможет ли это, но даже недавно я столкнулся с точно такой же проблемой с версией oozie-4.2.0 . Прочитав вышеупомянутые ответы, я только что добавил опцию maven через командную строку, и она сработала для меня. Итак, просто делюсь здесь.

Я использую Java 1.8.0_77 , не пробовал с Java 1.7

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


1

Для того, чтобы игнорировать отсутствующие @paramи @returnтеги, этого достаточно , чтобы отключить missing группу doclint . Таким образом, Javadoc будет по-прежнему проверяться на наличие проблем более высокого уровня и синтаксиса:

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

Обратите внимание, что это для плагина версии 3.0 или новее.


0

Я немного опоздал на вечеринку, но я был вынужден искать обходной путь, оказался здесь, а затем нашел его.

Вот что работает для меня:

export JAVA_TOOL_OPTIONS=-DadditionalJOption=-Xdoclint:none

А затем запустите сборку Maven, любую сборку дистрибутива Linux и т. Д. Приятно то, что для этого не требуется изменение конфигурационных файлов Maven - я не мог этого сделать, поскольку моей целью было перестроить кучу rpm-пакетов Centos , поэтому пришлось идти очень глубоко.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.