Как намекнуть на m2e (плагин Maven для eclipse), чтобы прикрепить внешний сайт javadoc к артефакту?

Мне нужно использовать артефакт X, который не имеет ни артефактов источника, ни javadoc. Я знаю, однако, внешний веб-сервер, на котором был опубликован javadoc для X.

В "plain" Eclipse я могу прикрепить URL-адрес Javadoc Location для jar в пути сборки, а затем Shift - F2 открывает браузер для этого URL-адреса.

Я хотел бы, чтобы m2e делал то же самое автоматически для артефакта X без изменения артефактов из Maven Central.

Пример pom.xml, показывающий это:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>foo</groupId>
    <artifactId>m2e-javadoc</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>ASCII</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>net.sf.jt400</groupId>
            <artifactId>jt400-full</artifactId>
            <version>5.0</version>
        </dependency>
    </dependencies>

</project>

Как мне это обозначить?


EDIT: вопрос был задан в списке рассылки m2e по адресу http://dev.eclipse.org/mhonarc/lists/m2e-users/msg02386.html


EDIT: после некоторых экспериментов с установкой отсутствующих артефактов в локальном репозитории и отказом от проекта сделать выпуск Maven, я переупаковал последнюю версию (7.10) в Maven Central.

Ответ 1

К сожалению, это не сработает, если создатель не создал соответствующие артефакты (-sources и -javadoc) для конкретного артефакта. Но вы должны иметь возможность вручную добавить javadoc для определенного артефакта. Я бы предложил создать отдельный пакет (artifact-javadoc) и развернуть его в диспетчере репозитория, чем он должен работать автоматически.

Ответ 2

Вы можете использовать Maven Javadoc Plugin для этот сценарий путем увеличения вашего POM:

Вы можете добавить перекрестные ссылки ссылки на внешние проекты, используя  параметры. Например:

<project>
  ...
  <reporting> (or <build>)
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.8.1</version>
        <configuration>
          <links>
            <link>http://commons.apache.org/dbcp/apidocs/</link>
            <link>http://commons.apache.org/fileupload/apidocs/</link>
          </links>
            ...
        </configuration>
      </plugin>
    </plugins>
  </reporting> (or </build>)
  ...
</project>

Важное примечание: согласно спецификациям Javadoc, все указанные ссылки должен иметь файл fetchable/package-list.

Эта стратегия может быть дополнительно дополнена с помощью параметра <offlineLinks/> и совокупная цель, чтобы консолидировать вашу документацию в том же дереве документации, что и вам.

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