Как указать другую версию стандартного DocLet в Maven?

Предыстория: у меня есть проект, который прекрасно компилируется с maven на машине с java 1.7.0, но компиляция javadoc не удалась на другой машине с java 1.8.0. Из журнала maven я вижу, что один использует "Стандартную версию DocLet 1.7.0_40", а другой использует "Стандартную версию DocLet 1.8.0".

Вопрос: как я могу сказать maven использовать правильную версию Standard DocLet?

Я уже установил исходный код и целевую версию как 1.7 в плагине maven-compiler-plugin.

1 ответ

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

<project>
  ...
  <reporting> (or <build>)
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.9.1</version>
        <configuration>
          <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>

          <!-- <docletPath>/path/to/UmlGraph.jar</docletPath> -->
          <docletArtifact>
            <groupId>org.umlgraph</groupId>
            <artifactId>doclet</artifactId>
            <version>5.1</version>
          </docletArtifact>
          <additionalparam>-views</additionalparam>
          <useStandardDocletOptions>true</useStandardDocletOptions>
        </configuration>
      </plugin>
    ...
    </plugins>
  </reporting> (or </build>)
  ...
</project>

Также, столкнувшись с проблемой, я покопался в коде maven-javadoc-plugin и не думаю, что вы можете изменить стандартную версию doclet. Вы можете указать собственный доклет, но для стандартного доклета он использует вашу версию Java, предположительно потому, что реализация доклета является частью вашего JDK.

Другие вопросы по тегам