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>

Потім проект встановлюється в моєму локальному сховищі. Однак JAR Javadoc все ще не генерується.

Фрагмент виводу, який я бачу в консолі з цією новою конфігурацією:

[ПОМИЛКА] MavenReportException: Помилка під час створення архіву: Код виходу: 1 - /Users/....java:18: попередження: немає @param ... Командний рядок був: / Бібліотека / Java / Головна / bin / javadoc @options @packages

Зверніться до створених файлів Javadoc у розділі '/ Users / sergioc / Документи / робочі простори / heal / minitoolbox / target / apidocs' dir.

на org.apache.maven.plugin.javadoc.AbriefJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5043) at org.apache.maven.plugin.javadoc.AbriefJavadocMojo.executeReportMajova.oven.avachea990.pdf (AJJavache) .javadoc.JavadocJar.execute (JavadocJar.java:181) на org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) на org.apache.maven.lifecycle.internal.MojoEeccutor (MojoEeccutor) : 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.execute (LifecycleStarter.61) на 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 ( Native Method) у sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) у sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) на java.lang.reflect.Method.викликати (Method.java:291) на 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)

Будь-яке рішення щодо того, як створити джерела, встановити проект та генерувати JAR Javadoc за один крок, як це працювало з Java 7?


Привіт @ 75inchpianist, я оновив питання, насправді це помилки (хоча дивно, що останній рядок помилки стосується попередження, як ви бачите в створеному результаті). Проект не встановлений у моєму локальному сховищі, тому він не вважається простим попередженням :(
Серхіо

Для 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-плагін 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-плагіна використовуйте <doclint>none</doclint>. Дивіться maven.apache.org/plugins/maven-javadoc-plugin/…
coolersport

11
Крім того, оскільки maven-javadoc-плагін 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

Ось найбільш стислий спосіб, який я знаю, щоб ігнорувати попередження про доклінт незалежно від версії 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
І куди це потрібно поставити конкретно?
clearlight

1
@clearlight, обидва, buildі profilesце блоки вищого рівня в Maven pom.xml. maven.apache.org/pom.html#Build .
Олівер Гонджа

Дякую. Я врешті-решт виявив це, але добре, щоб це було пов'язано з цією відповіддю.
clearlight

38

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

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

Загальне рішення, подане тут в інших відповідях (додаючи, що властивість у розділі плагінів) чомусь не спрацювало. Тільки встановивши його в глобальному масштабі, я міг успішно створити баночку javadoc.


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 так само, як це було створено в JDK 7. Спасибі.
Saurabhcdt

1
Чи можете ви уточнити: якщо maven-javadoc-plugin 3.0.0 і вище, якщо я просто вкажу <doclint>none</doclint>(без активації на базі версії JDK), він все одно не вдасться на JDK менше 1,8, чи автоматично плагін maven-javadoc автоматично визначає, чи doclintопція підтримується цією версією Java?
Гаррет Вілсон

31

Я не думаю, що просто вимкнути DocLint - це хороше рішення, принаймні, не довгостроково. Добре, що Javadoc став трохи більш суворим, тому правильним способом виправити проблему збірки є виправлення основної проблеми . Так, вам потрібно буде виправити ці файли вихідного коду.

Ось, на що слід звернути увагу, на що раніше могли піти:

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

Вам просто доведеться виправити файли вихідного коду і продовжувати створювати Javadoc, поки він не зможе побудувати без збоїв. Так громіздко, але особисто мені подобається, коли я довів свої проекти до рівня DocLint, тому що це означає, що я можу бути впевненішою, що Javadoc, який я виробляю, є власне тим, що я маю намір.

Звичайно, проблема є, якщо ви генеруєте Javadoc на якомусь вихідному коді, який ви не створили самостійно, наприклад, тому що він надходить з якогось генератора коду, наприклад, wsimport . Дивно, що Oracle не готував власні інструменти для відповідності JDK8, перш ніж випустити JDK8. Здається, він не буде виправлений до Java 9 . Тільки в цьому конкретному випадку я пропоную вимкнути DocLint, як це зафіксовано в інших місцях на цій сторінці.


1
Тут повністю погоджуєтеся, що для згенерованого коду ви можете просто сказати плагіну не обробляти код у даному пакеті, додавши розділ виключенняPackageNames у розділі конфігурації плагіну javadoc. дивись maven.apache.org/plugins/maven-javadoc-plugin/examples/…
Newtopian

@Newtopian. Гарна думка. Однак у моєму випадку мені справді потрібен був згенерований код, wsimportщоб стати частиною Javadoc.
peterh

Це ТАК набагато простіше сказати, ніж зробити, оскільки багато з нас, що стикаються з цими проблемами, намагаються побудувати незнайомий код відкритого коду, який має десь залежність від Maven, і ми не маємо уявлення, як це все працює, тому не маємо простого способу вирішити основні причини. Міопія щодо контексту занадто велика. Людям потрібно більше узагальнити обсяг відповідей та надати більше конкретики про те, як зробити виправлення.
clearlight

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. Принаймні з цим властивістю я можу створити та встановити проект ще раз, однак я все ще відсутній jar-doc jar (мені це потрібно для розгортання до центрального Maven). Я оновив своє запитання деталями експерименту.
Серхіо

Це була найбільш достатня відповідь для мене. Я просто хотів випробувати будівництво під час постійної розробки, коли 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, що становить 3.0.0.

Отже, <додатковий параметр> не буде працювати. Тож ми маємо його змінити, як показано нижче.

   <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/…
Peter W

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

4

Я хотів би додати трохи розуміння інших відповідей

У моєму випадку

-Xdoclint: немає

Не працювало.

Почнемо з того, що в моєму проекті мені взагалі не потрібен був явадок. Лише деякі необхідні плагіни мали залежність від часу побудови.

Отже, найпростіший спосіб вирішити мою проблему:

<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-плагіна як версію 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помилок.
Thorsten Schöning

Перший працює лише в 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

На роботу в Дженкінс:

Конфігурація> Навколишнє середовище> Введіть змінні середовища в процес збирання> Властивості Зміст

Вирішив мою проблему створення коду через Дженкінс Мейвен :-)


Це працює для 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 - я не міг цього робити, оскільки моя мета полягала в тому, щоб відновити купу пакетів Centos rpm, тому довелося зайти справді глибоко.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.