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

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

Как я могу настроить Maven, чтобы автоматически получать вложения источника и javadoc и правильно регистрировать их в Eclipse?

17 ответов


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

Это достигается путем перехода в окно > настройки > Maven и проверки параметров" загрузить источники артефактов "и" загрузить артефакт JavaDoc".

Screenshot of Maven Preferences


mvn eclipse:eclipse -DdownloadSources=true

или

mvn eclipse:eclipse -DdownloadJavadocs=true

или вы можете добавить оба флага,как указывает Спенсер К.

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

mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs

другие ответы на эту работу, но если вы хотите избежать необходимости запоминать аргументы командной строки, вы также можете просто добавить в downloadSources и downloadJavadocs config в раздел 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>

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

<?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>

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


щелкните правой кнопкой мыши на project - > maven - > download sources


также аналогичный вопрос это отвечает на это и включает в себя пример настроек pom.


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

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

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

Surajz


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

запись исходного jar доступна в пути к классу. Следовательно, новая сборка решила проблему...


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

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

под окном-это только "новое окно", "новый редактор", "открытая перспектива" и т. д.

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

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

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

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


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


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


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

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


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!


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

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


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


после установки свойств на уровне проекта или на уровне свойств пользователя, Выполните проект Maven - > Update (принудительное обновление). Он загружает источники