Получить исходные файлы jar, прикрепленные к Eclipse для зависимостей, управляемых Maven
Я использую Maven (и Maven Eclipse Integration) для управления зависимостями для моих Java-проектов в Eclipse. Функция автоматической загрузки JAR-файлов из репозиториев Maven позволяет сэкономить время. К сожалению, он не включает документацию по API и исходный код.
Как настроить Maven на автоматическое получение исходных и javadoc-вложений и их правильную регистрацию в Eclipse?
18 ответов
Я уверен, что плагин m2eclipse Maven для Eclipse - наоборот - может сделать это. Вы можете настроить его для автоматической загрузки как исходных файлов, так и javadoc.
Это достигается путем перехода в Window > Preferences > Maven и проверки параметров "Download Artifact Sources" и "Download Artifact JavaDoc".
mvn eclipse:eclipse -DdownloadSources=true
или же
mvn eclipse:eclipse -DdownloadJavadocs=true
или вы можете добавить оба флага, как указывает Спенсер К.
Кроме того, =true
порция не требуется, поэтому вы можете использовать
mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs
Другие ответы на эту работу, но если вы хотите избежать запоминания аргументов командной строки, вы также можете просто добавить конфигурацию downloadSources и downloadJavadocs в раздел 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>
Я предпочитаю не ставить исходные /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>
Щелкните правой кнопкой мыши на проекте -> Maven -> источники загрузки
Если файлы jar находятся в локальном репозитории, и вы используете поддержку Eclipses maven, источники автоматически присоединяются. Вы можете запустить mvn dependency:sources
скачать все исходные банки для данного проекта. Не уверен, как сделать то же самое с документацией, хотя.
Если вы используете meclipse, сделайте
Окно -> Maven -> Скачать источники артефактов (выберите отметку)
(Если вы по-прежнему получаете окно вложения источника, нажмите кнопку вложения файла и закройте окно вложения источника. При следующей попытке увидеть источник откроется правильный источник)
Surajz
Существует также похожий вопрос, который отвечает на этот вопрос и включает в себя примеры настроек pom.
Я попробовал windows->pref..->Maven, но это не сработало. Поэтому я создал новый путь к классу с помощью команды mvn eclipse:eclipse -DdownloadSources=true и обновил рабочее пространство один раз. вуаля.. Источники были прикреплены.
Запись исходного jar доступна в пути к классам. Следовательно, новая сборка решила проблему...
В моей версии Eclipse helios с m2Eclipse нет
window --> maven --> Download Artifact Sources (select check)
Под окном находится только "новое окно", "новый редактор", "открытая перспектива" и т. Д.
Если вы щелкнете правой кнопкой мыши по своему проекту, то выберете maven -> источники загрузки
Ничего не произошло. не загружаются источники, не обновляются файлы pom, не появляется всплывающее окно с вопросом, какие источники.
Выполнение mvn xxx за пределами Eclipse опасно - некоторые команды не работают с m2ecilpse - я сделал это один раз и потерял весь проект, пришлось переустановить Eclipse и начать с нуля.
Я все еще ищу способ заставить ecilpse и maven найти и использовать источник внешних jar-файлов, таких как servlet-api.
Изменение pom для maven-eclipse-plugin для включения source/javadoc просто применяет новые зависимости, добавляемые в pom. Если нам нужно подать заявку на существующие зависимости, мы должны запустить mvn dependency:sources. Я проверил это.
Проверка источника загрузки /javadoc в предпочтениях Eclipse-Maven иногда недостаточна. В случае, если maven по какой-то причине не смог загрузить их (отключение сети?), Maven создаст некоторые *.lastUpdated файлы и больше никогда не загрузит их. Мое эмпирическое решение состояло в том, чтобы удалить каталог артефактов из.m2/repository и перезапустить рабочее пространство eclipse с проверкой download source/javadoc и проверять также обновление проектов при запуске. После перезапуска рабочей области, возможно, некоторые проекты могут быть помечены как ошибочные, в то время как процесс затмения загружается, тогда любая ошибка будет очищена. Может быть, эта процедура не такая "научная", но для меня все-таки получилось.
Для Индиго (и, возможно, Гелиоса) упомянутые выше флажки расположены здесь:
Окно -> Настройки -> Maven
Я добавил конфигурацию pom в плагин maven-eclipse для загрузки исходного кода и javadocs, но я рассчитываю / надеюсь, что это произойдет для новых зависимостей, а не для существующих.
Для существующих зависимостей, я просмотрел в проводнике пакетов до "Зависимости Maven" и щелкнул правой кнопкой мыши на commons-lang-2.5.jar, выбрал Maven | Загрузите источники и... ничего не произошло (нет индикатора выполнения или указания на то, что он что-то делает). Однако он загрузился, так как теперь я могу перейти к исходному тексту в общем сообществе.
задумался над тем, чтобы использовать настройки в 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 ранее).
Но сюрприз - при использовании варианта POM файл.classpath получает свои исходные коды и javadoc!
Небольшое дополнение к ответу, если ваш проект не является проектом maven, вы все же можете получить исходный код , используя этот плагин, предоставленный в eclipse jar-файловJava Source Attacher
После установки свойств либо на уровне проекта, либо на уровне свойств пользователя, выполните Maven -> Обновить проект (принудительное обновление). Скачивает исходники
У меня была похожая проблема, и лучшим решением для меня было включить исходный код в тот же файл jar, что и скомпилированный код (поэтому данный каталог в jar будет включать Foo.java
а также Foo.class
). Eclipse автоматически связывает источник со скомпилированным кодом и автоматически предоставляет JavaDoc из источника. Очевидно, это полезно, только если вы контролируете артефакт.