Как ссылаться на javadocs на зависимости в плагине eclipse от Maven, когда javadoc не привязан к зависимости

StackOverflow https://stackoverflow.com/questions/44396

  •  09-06-2019
  •  | 
  •  

Вопрос

Я использую Eclipse, Maven и Java в своей разработке.Я использую Maven для загрузки зависимостей (jar-файлы и javadoc, если они доступны) и подключаемый модуль eclipse от Maven для генерации файлов .project и .classpath для Eclipse.Когда загруженная зависимость не содержит прикрепленного javadoc, я вручную добавляю ссылку для javadoc в файл .classpath, чтобы я мог видеть javadoc для зависимости в Eclipse.Затем, когда я запускаю плагин eclipse от Maven для восстановления файла .classpath, он, конечно, стирает это изменение.

Есть ли способ настроить плагин eclipse в Maven для автоматического добавления атрибутов classpath для javadoc при запуске плагина eclipse в Maven?

Меня интересуют только ответы, в которых javadoc и / или исходные тексты не предоставлены для зависимости в репозитории maven, что чаще всего имеет место для меня.Использование свойств downloadSources и / или downloadJavadocs не поможет решить эту проблему.

Это было полезно?

Решение

Вы могли бы рассмотреть возможность просто полностью избежать этой проблемы, установив javadoc jar в свой локальный репозиторий вручную, используя цель установки файла и передаю параметр -Dclassifier=javadoc.Как только вы это сделаете, путь к классу, который генерирует mvn, должен быть правильным.

Если вы используете удаленное репозиторий в качестве прокси-сервера для централизации, вы также можете развернуть javadocs в этом репозитории, и тогда все остальные, кто использует этот прокси, теперь также автоматически получат javadocs.

Другие советы

Из плагина Maven Eclipse Вопросы и ответы

Следующий пример показывает, как это сделать это в командной строке:

mvn eclipse:eclipse -DdownloadSources=true  -DdownloadJavadocs=true 

или в вашем pom.xml:

<project>
  [...]
  <build>
    [...]
    <plugins>
      [...]
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-eclipse-plugin</artifactId>
        <configuration>
          <downloadSources>true</downloadSources>
          <downloadJavadocs>true</downloadJavadocs>
        </configuration>
      </plugin>
      [...]
    </plugins>
    [...]
  </build>
  [...]
</project>

Я использую STS 2.8.1, который в основном представляет собой eclipse + spring tools;В существующем проекте maven я щелкнул правой кнопкой мыши по проекту -> maven -> Загрузить исходные тексты и загрузить JavaDocs

Как упоминалось в Как загрузить исходные тексты и артефакты javadoc с помощью плагина Maven Eclipse из другого репозитория?, ты можешь сделать это:

В Eclipse перейдите в Windows-> Настройки-> Maven.Установите флажок с надписью "Загрузить артефакт Javadoc". У меня это хорошо сработало.

Maven Preferences

Как правило , Javadocs в основном не используются как зависимость .Потому что они не требуются ни при компиляции, ни во время выполнения.Это просто для того, чтобы помочь разработчику при разработке или отладке.

Предполагая использование java IDE Eclipse, мы можем использовать java docs в качестве ссылки.Ниже приведены подходы, с помощью которых мы можем связать javadocs / исходные тексты с соответствующими jar.

1.Если это проект, не относящийся к maven :

Загрузите javadocs jar или архивированный файл, все, что доступно, и поместите его в какой-нибудь каталог.Щелкните правой кнопкой мыши проект приложения в IDE Eclipse, выберите Свойства и выберите Путь сборки Java, затем выберите вкладку Библиотеки в разделе Путь сборки Java.Теперь разверните jar, который вы хотите связать с java docs / source.Выберите ссылку расположения Javadoc и нажмите на кнопку Изменить, появится новое окно, в котором нам нужно выбрать путь к jar javadocs.Нажмите "ОК", и мы связали javadoc / исходный код с соответствующими банками.

enter image description here

2.Если это проект maven

Если мы используем проект Maven, то перейдите к jar-файлам в разделе Maven dependency в проекте в представлении Project Explorer, как показано ниже.Теперь щелкните правой кнопкой мыши на файле jar, в который вы хотите добавить Javadoc / исходный код,  выберите Maven, затем нажмите на Javadoc или Исходный код, который вы хотите связать с проектом.Теперь IDE автоматически загрузит требуемый javadoc / исходный код и свяжет его с соответствующим jar в проекте.

enter image description here

Вы можете убедиться в этом, щелкнув правой кнопкой мыши по проекту в IDE и выбрав Путь сборки Java и выбрав вкладку Библиотеки под путем сборки Java, а затем разверните нужную jar, здесь, когда вы нажмете кнопку Редактирования, вы увидите связанный путь к Javadoc / источнику с соответствующим jar, как показано ниже на изображении.

enter image description here

3.Если это проект Maven, и мы устанавливаем поведение по умолчанию:

Eclipse автоматически загрузит javadoc / исходный код вместе с основным необходимым jar при запуске.По умолчанию устанавливается инструкция Maven для загрузки Javadoc / исходных текстов для всех jar, связанных в проекте.

Нажмите Windows – настройки – выберите Maven и установите флажок Загрузить артефакт Javadoc, как показано ниже

enter image description here

Теперь нажмите "Применить" и сохраните его, и теперь, когда вы создаете новый проект Maven, по умолчанию Javadocs будут загружены и связаны со всеми зависимыми банками в проекте.
Вы можете проверить, щелкнув правой кнопкой мыши по проекту и свойствам, и в разделе Путь сборки Java вы увидите, что javadoc связаны со всеми jar, как показано ниже.

enter image description here

Если ваш проект является проектом Maven, то всегда лучше использовать 2-й подход, потому что, используя этот подход, IDE и Maven заботятся о загрузке правильной версии Javadoc / source и также связывают ее с относительной jar.

Подход 3-й немного затратный, потому что javadoc / исходные тексты будут загружены для всех зависимых jar, возможно, вас не интересуют javadocs / исходные тексты для всех зависимых jar.

Поможет ли наличие источников для зависимости?Вы можете указать плагину eclipse загрузить их (и ссылаться на них в .classpath) с помощью -DdownloadSources=true

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top