Получите исходные файлы jar, прикрепленные к Eclipse для зависимых от Maven зависимостей

Я использую Maven (и Maven Eclipse Integration) для управления зависимостями для моих проектов Java в Eclipse. Функция автоматической загрузки файлов JAR из репозиториев Maven - это экономия в реальном времени. К сожалению, он не включает документацию API и исходный код.

Как настроить Maven для автоматического получения вложений источника и javadoc и правильно зарегистрировать их с помощью Eclipse?

Ответ 1

Я уверен, что meclipse плагин Maven для Eclipse - наоборот - может это сделать. Вы можете настроить его для загрузки как исходных файлов, так и javadoc автоматически для вас.

Это достигается путем перехода в Window > Preferences > Maven и проверки параметров "Загрузить файлы артефактов" и "Загрузить артефакт JavaDoc".

Screenshot of Maven Preferences

Ответ 2

mvn eclipse:eclipse -DdownloadSources=true

или

mvn eclipse:eclipse -DdownloadJavadocs=true

или вы можете добавить оба флага, как указывает Spencer K.

Кроме того, часть =true не требуется, поэтому вы можете использовать

mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs

Ответ 3

Другие ответы на эту работу, но если вы хотите избежать необходимости запоминать аргументы командной строки, вы также можете просто добавить в downloadSources и загрузить конфигурацию javadocs в раздел maven-eclipse-plugin вашего pom.xml:

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

Ответ 4

Я предпочитаю не устанавливать исходные /Javadoc параметры загрузки в проект pom.xml, поскольку я считаю, что это предпочтения пользователя, а не свойства проекта. Вместо этого я помещаю их в профиль в мой файл settings.xml:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <profiles>
    <profile>
      <id>sources-and-javadocs</id>
      <properties>
        <downloadSources>true</downloadSources>
        <downloadJavadocs>true</downloadJavadocs>
      </properties>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>sources-and-javadocs</activeProfile>
  </activeProfiles>
</settings>

Ответ 5

Если исходные банки находятся в локальном репозитории, и вы используете поддержку Eclipses maven, источники автоматически присоединяются. Вы можете запустить mvn dependency:sources, чтобы загрузить все исходные банки для данного проекта. Не уверен, как сделать то же самое с документацией.

Ответ 6

Щелкните правой кнопкой мыши по проекту → maven → загрузить источники

Ответ 7

Существует также похожий вопрос, который отвечает на этот вопрос и включает примеры настроек pom.

Ответ 8

Если вы используете meclipse do

window → maven → Загрузить источники артефакта (выберите проверку)

(Если вы все еще получаете окно с исходным кодом, нажмите кнопку "Прикрепить файл" и закройте окно источника прикрепления. В следующий раз, когда вы попытаетесь увидеть источник, он откроет правильный источник)

Surajz

Ответ 9

Я попробовал windows- > pref..- > Maven Но это не сработало. Поэтому я создал новый путь класса с командой mvn eclipse: eclipse -DdownloadSources = true и обновил рабочее пространство один раз. вуаля.. Источники были прикреплены.

Запись исходного кода доступна в пути к классу. Поэтому новая сборка решила проблему...

Ответ 10

Изменение pom для maven-eclipse-plugin для включения source/javadoc просто применяется для добавления новых зависимостей в pom. Если нам нужно применить существующие зависимости, мы должны запустить mvn dependency: sources. Я проверил это.

Ответ 11

Проверка источника загрузки /javadoc в предпочтении Eclipse-Maven, иногда недостаточно. В случае, если maven не удалось загрузить их по какой-либо причине (сетевое затемнение?), Maven создает некоторые *.lastUpdated файлы, а затем никогда не будет загружаться снова. Моим эмпирическим решением было удалить каталог артефакта из .m2/repository и перезапустить рабочее пространство eclipse с проверенными и обновленными проектами загрузки /javadoc при запуске. После перезапуска рабочего пространства, возможно, некоторые проекты могут быть помечены с ошибкой, а процесс затмения будет загружен, тогда любая ошибка будет удалена. Возможно, эта процедура не так "научна", но для меня это удалось.

Ответ 12

в моей версии гелионов Eclipse с m2Eclipse нет

window --> maven --> Download Artifact Sources (select check)

В окне отображается только "новое окно", "новый редактор", "открытая перспектива" и т.д.

Если вы щелкните правой кнопкой мыши на своем проекте, выберите maven → download sources

Ничего не происходит. никакие источники не загружаются, никакие файлы pom не обновляются, окно не появляется, спрашивая, какие источники.

Выполнение mvn xxx вне eclipse опасно - некоторые команды не работают с m2ecilpse - я сделал это один раз и потерял весь проект, пришлось переустановить eclipse и начать с нуля.

Я все еще ищу способ получить ecilpse и maven для поиска и использования источника внешних банок, таких как servlet-api.

Ответ 13

Я добавил конфигурацию pom в плагин maven-eclipse для загрузки источника и javadocs, но я полагаю/надеюсь, что это произойдет для новых зависимостей, а не уже существующих.

Для существующих зависимостей, я просмотрел в проводнике пакетов до "Зависимости Maven" и щелкнул правой кнопкой мыши на commons-lang-2.5.jar, выбранном Maven | Загрузите Источники и... ничего не произошло (нет индикатора прогресса или указания на то, что он что-то делает). Однако он загрузился, так как теперь я могу перейти к исходному коду.

Ответ 14

overthink предложил использовать настройку в pom:

<project>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-eclipse-plugin</artifactId>
            <configuration>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
                ... other stuff ...
            </configuration>
        </plugin>
    </plgins>
</build>
...

Сначала я думал, что это все равно не будет прикреплять javadoc и источники (поскольку я безуспешно пытался использовать этот параметр -DdownloadSources).

Но с удивлением - файл .classpath получает свои источники и javadoc при использовании варианта POM!

Ответ 15

Для Indigo (и, вероятно, Helios) отмеченные выше флажки расположены здесь:

Окно → Настройки → Maven

Ответ 16

У меня была аналогичная проблема, и решение, которое наилучшим образом помогло мне, состояло в том, чтобы включить источник в ту же самую банку, что и скомпилированный код (поэтому данный каталог в банке будет содержать как Foo.java, так и Foo.class). Eclipse автоматически связывает источник с скомпилированным кодом и автоматически предоставляет JavaDoc из источника. Очевидно, что это полезно, если вы контролируете артефакт.

Ответ 17

После настройки свойств на уровне Project Level или User Properties, Пожалуйста, сделайте проект Maven → Update (Force Update). Он загружает источники