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?

Sergio
источник
Привет @ 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>
Ankon
источник
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, как описано в другом месте на этой странице.

peterh
источник
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>
mpasko256
источник
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>
amanzoor
источник
3

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

 <additionalJOption>-Xdoclint:none</additionalJOption>

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

rawrintheclouds
источник
Иногда -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 :-)

SNJ
источник
Это работает для 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 или новее.

gjoranv
источник
0

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

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

export JAVA_TOOL_OPTIONS=-DadditionalJOption=-Xdoclint:none

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

Мариуш Борса
источник