Получить исходные JAR из репозитория Maven
Есть ли у кого-нибудь идеи, можете ли вы найти исходные JAR файлы в репозиториях Maven?
Ответы
Ответ 1
Maven Micro-Tip: Получить источники и Javadocs
Когда вы используете Maven в среде IDE, вам часто требуется, чтобы ваша среда IDE разрешала исходный код и Javadocs для зависимостей вашей библиотеки. Там есть простой способ достичь этой цели.
mvn dependency:sources
mvn dependency:resolve -Dclassifier=javadoc
Первая команда попытается загрузить исходный код для каждой из зависимостей в вашем файле pom.
Вторая команда попытается загрузить Javadocs.
Maven находится во власти библиотечных упаковщиков здесь. Поэтому некоторые из них не будут иметь исходный код, а многие из них не будут иметь Javadocs.
В случае, если у вас много зависимостей, также может быть хорошей идеей использовать включения/исключения для получения конкретных артефактов, следующая команда например, загружать только источники для зависимости с помощью определенный artifactId:
mvn dependency:sources -DincludeArtifactIds=guava
Источник: http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/
Документация: https://maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html
Ответ 2
При запуске Eclipse из командной строки (mvn eclipse:eclipse
)
<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>
Ответ 3
Если проект создает банку с исходными файлами проекта и развертывает ее в репозитории maven, то вы найдете его :)
Просто к сведению, исходные артефакты обычно создаются maven-source-plugin. Этот плагин может объединить основные или тестовые источники проекта в jar-архив и, как описано в Настройка исходного плагина:
(...) Сгенерированный файл JAR будет назван значением finalName
плюс "-sources", если он является основным источником. В противном случае это будет finalName
плюс "-test -sources", если это будут тестовые источники.
Дополнительный текст был дан для описания артефакта ("-sources" или "-test -sources" здесь) называется классификатором.
Чтобы объявить зависимость от артефакта, который использует классификатор, просто добавьте элемент <classifier>
. Например:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.7.ga</version>
<classifier>sources</classifier>
</dependency>
Обратите внимание, что обычно вы этого не делаете, большинство IDE предоставляют поддержку для загрузки источников (и/или JavaDoc) из основного артефакта без явной декларации зависимости от них.
Наконец, также обратите внимание, что некоторые поисковые системы хранилища позволяют искать артефакты с использованием классификатора (по крайней мере, Nexus делает с расширенным поиском). См. этот поиск, например.
Ответ 4
Чтобы загрузить некоторый определенный источник или javadoc, нам нужно включить GroupIds - его значение, разделенное запятыми, как показано ниже
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources
Обратите внимание, что классификатор не разделяется запятой, чтобы загрузить javadoc, нам нужно запустить вышеуказанную команду еще раз с классификатором как javadoc
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc
Ответ 5
плагин идеи maven для IntelliJ Idea позволяет указать, должны ли быть разрешены и загружены источники и java-документы
mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true
Ответ 6
Для загрузки любого артефакта используйте
mvn dependency:get -Dartifact=groupId:artifactId:version:packaging:classifier
Для Groovy источников это будет
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:sources
Для Groovy Javadoc вы должны использовать
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc
Это помещает данный артефакт в ваш локальный репозиторий Maven, т.е. обычно $HOME/.m2/repository
.
dependency:sources
просто загружает источники зависимостей проекта, а не источники плагинов или источники зависимостей, определенные внутри плагинов.
Ответ 7
вы можете найти информацию по этому связанному вопросу: Получить исходные файлы jar, прикрепленные к Eclipse для зависимых от Maven зависимостей
если вы используете плагин eclipse maven, используйте "mvn eclipse: eclipse -DdownloadSources = true"
Ответ 8
если вы используете eclipse, вы также можете открыть "Настройки" > "Maven" и выбрать "Загрузить файлы артефактов", это позволит неповрежденным pom.xml и сохранить ваши источники или java-документы (если они выбраны) только для разработки прямо на вашем компьютере. ~/.m2
Ответ 9
В Eclipse
- Щелкните правой кнопкой мыши на
pom.xml
- Выберите
Run As
→ Maven generate-sources
он будет генерировать источник по умолчанию в папке .m2
Pre-Реквизит:
Maven должен быть настроен с помощью Eclipse.
Ответ 10
В eclipse - щелкните по проекту, затем:
.
Ответ 11
Вы можете, если они будут загружены. Как правило, они называются "framework-version-source-sources (s)"
Ответ 12
NetBeans, Context-Click
В NetBeans 8 с проектом, управляемым Maven, просто щелкните контекстное меню элемента списка jar файлов зависимости, в которой вы находитесь интересно. Выберите Download Sources
. Подождите, и NetBeans автоматически загрузит и установит исходный код, если он доступен.
Аналогично вы можете выбрать Download Javadoc
, чтобы локально установить документ. Затем вы можете контекстно-кликнуть какой-то код в редакторе и выбрать, чтобы увидеть JavaDoc.
Ответ 13
На основе просмотра консоли Maven в Eclipse (Kepler) источники будут автоматически загружены для зависимости Maven, если вы попытаетесь открыть класс из указанной зависимости Maven в редакторе, для которого у вас уже нет загруженных источников. Это удобно, когда вы не хотите захватывать источник для всех своих зависимостей, но вы не знаете, какие из них вам нужны раньше времени (и вы используете Eclipse).
В итоге я использовал метод @GabrielRamierez, но будет использовать @PascalThivent подход в будущем.
Ответ 14
Я также использовал плагин eclipse, чтобы получить проект в рабочее пространство eclipse.
Поскольку я работал над другим проектом, я видел, что можно работать с eclipse, но без maven-eclipse-plugin. Это упрощает использование в разных средах и позволяет легко использовать maven над eclipse. И это без изменения pom.xml файла.
Итак, я рекомендую подход Габриэля Рамиреса.
Ответ 15
Если вам известны groupId и aritifactId, вы можете сгенерировать URL-адрес для загрузки следующим образом.
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
http://central.maven.org/maven2/ch/qos/logback/logback-classic/
и вы получите страницу, подобную этой, выберите нужную версию, просто наслаждайтесь!
Ответ 16
Для отладки вы также можете использовать "Java Decompiler", такой как: JAD и декомпилировать исходный код на лету (хотя сгенерированный исходный код никогда не совпадает с исходным). Затем установите JAD в качестве плагина в Eclipse или вашей любимой IDE.
Ответ 17
Репозитории Maven предоставляют простой способ загрузки исходных файлов jar.
Я объясню это с помощью демонстрации "spring-boot-actator-autoconfigure".
- Перейти в хранилище Maven -
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure
- На странице перечислены различные версии. Нажмите на нужный, скажем, 2.1.6. ВЫПУСК - https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE
- На странице есть ссылка "Просмотреть все" рядом с "Файлы". Нажмите это -
https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE/
- На странице перечислены различные файлы, в том числе один для источников -
https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE/spring-boot-actuator-autoconfigure-2.1.6.RELEASE-sources.jar
В противном случае вы всегда можете "git clone" на репозитории из github, если он есть и получить конкретный код.
Как объяснили другие, вы можете использовать команду "mvn dependency: sources" для получения и создания jar-кода источников для используемой зависимости.
Примечание. У некоторых зависимостей не будет source.jar, поскольку они не содержат исходного кода, а содержат файл pom. например spring-загрузка пускатель привод.
Как и в этом случае:
Начальные POM - это набор удобных дескрипторов зависимостей, которые вы можете включить в свое приложение. Вы получаете универсальное решение для всех необходимых вам Spring и связанных с ними технологий без необходимости искать примеры кода и копировать множество дескрипторов зависимостей.
Ссылка: Введение в Spring Boot Starters