У кого-нибудь есть идеи, можете ли вы найти исходные JAR-файлы в репозиториях Maven?
У кого-нибудь есть идеи, можете ли вы найти исходные JAR-файлы в репозиториях Maven?
Ответы:
Maven Micro-Tip: Получить источники и Javadocs
Когда вы используете Maven в IDE, вы часто обнаруживаете необходимость в вашей IDE для разрешения исходного кода и Javadocs для ваших библиотечных зависимостей. Есть простой способ достичь этой цели.
mvn dependency:sources mvn dependency:resolve -Dclassifier=javadoc
Первая команда попытается загрузить исходный код для каждой из зависимостей в вашем файле pom.
Вторая команда попытается загрузить Javadocs.
Мейвен во власти библиотечных упаковщиков здесь. Таким образом, у некоторых из них не будет упакованного исходного кода, а у многих из них не будет 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
mvn dependency:resolve -Dclassifier=javadoc
IntelliJ IDEA автоматически замечает javadocs, что очень приятно.
Настройка и запуск плагина maven-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>
mvn eclipse:eclipse
если вы добавляете это в файл POM?
M2_REPO
как xxxx-yy-sources.jar, в том же месте, что и обычный jar. Он будет прикреплен в виде исходного кода для xxxx-yy jar в библиотеках
Если проект создает банку с исходными файлами проекта и развертывает его в репозитории 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 делает с расширенным поиском). Посмотрите этот поиск, например.
Maven идеи плагина для IntelliJ Idea позволяет указать , должны ли быть разрешены и загрузить источники и яву документ
mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true
Чтобы скачать какой-то конкретный источник или javadoc, нам нужно включить GroupIds - значение через запятую, как показано ниже
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources
Обратите внимание, что классификатор не разделен запятыми, чтобы скачать javadoc, нам нужно еще раз запустить приведенную выше команду с классификатором как javadoc.
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc
Для загрузки любого артефакта используйте
mvn dependency:get -Dartifact=groupId:artifactId:version:packaging:classifier
Для Groovy источников это будет
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:sources
Для javadoc Groovy вы бы использовали
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc
Это помещает данный артефакт в ваш локальный репозиторий Maven, то есть обычно $HOME/.m2/repository
.
dependency:sources
просто загружает источники зависимостей проекта, а не источники плагинов или источники зависимостей, определенные внутри плагинов.
Вы можете найти информацию в этом связанном вопросе: Получить исходные jar-файлы, прикрепленные к Eclipse для зависимостей, управляемых Maven,
если вы используете плагин eclipse maven, то используйте «mvn eclipse: eclipse -DdownloadSources = true»
если вы используете eclipse, вы также можете открыть Preferences> Maven и выбрать Download Artifact Sources, это позволит pom.xml не тронуться и сохранить ваши исходники или документы Java (если они выбраны) только для разработки прямо на вашем компьютере ~ / .m2
В затмении
pom.xml
Run As
-> Maven generate-sources
Pre-Реквизит:
Maven должен быть настроен с Eclipse.
В NetBeans 8 с проектом, управляемым Maven, просто щелкните по контексту элемент списка файлов jar той зависимости, которая вас интересует. выбиратьDownload Sources
. Подождите немного, и NetBeans автоматически загрузит и установит исходный код, если он доступен.
Точно так же вы можете выбрать, Download Javadoc
чтобы документ был установлен локально. Затем вы можете щелкнуть по контексту некоторый код в редакторе и выбрать просмотр JavaDoc.
Основываясь на просмотре консоли Maven в Eclipse (Kepler), исходные файлы будут автоматически загружаться для зависимости Maven, если вы попытаетесь открыть класс из указанной зависимости Maven в редакторе, для которого у вас еще не загружены исходные коды. Это удобно, когда вы не хотите получать исходные тексты для всех ваших зависимостей, но не знаете, какие из них вы хотите заблаговременно (и вы используете Eclipse).
В итоге я использовал подход @ GabrielRamierez , но в дальнейшем буду использовать подход @ PascalThivent .
Если вы знаете 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/
и вы получите страницу, подобную этой, выберите нужную версию, просто наслаждайтесь!
Я также использовал плагин eclipse, чтобы поместить проект в рабочую область eclipse. Так как я работал над другим проектом, я увидел, что можно работать с eclipse, но без maven-eclipse-plugin. Это облегчает использование в различных средах и позволяет легко использовать maven поверх затмения. И это без изменения pom.xml-файла.
Итак, я рекомендую подход Габриэля Рамиреса.
Репозитории Maven предоставляют простой способ загрузки исходных файлов jar.
Я объясню это, используя демонстрацию для «spring-boot-actator-autoconfigure».
В противном случае, вы всегда можете "git clone" репозиторий из github, если его там и получить конкретный код.
Как объясняли другие, вы можете использовать команду «mvn dependency: sources» для получения и генерации jar-файлов для используемой зависимости.
Примечание. У некоторых зависимостей не будет source.jar, поскольку они не содержат исходного кода, а содержат файл pom. например, пружинный привод, пускатель, привод . Как и в этом случае:
Начальные POM - это набор удобных дескрипторов зависимостей, которые вы можете включить в свое приложение. Вы получаете универсальное решение для всех необходимых вам Spring и связанных с ними технологий, без необходимости искать примеры кода и копировать множество дескрипторов зависимостей.
Ссылка: Введение в Spring Boot Starters
Если вы хотите найти исходный файл jar для любого из артефактов вручную, перейдите в местоположение репозитория maven для конкретного артефакта и в «Файлах» нажмите «просмотреть все». Вы можете найти исходный файл JAR.