Получить исходные 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 просто загружает источники зависимостей проекта, а не источники плагинов или источники зависимостей, определенные внутри плагинов.

Ответ 8

если вы используете eclipse, вы также можете открыть "Настройки" > "Maven" и выбрать "Загрузить файлы артефактов", это позволит неповрежденным pom.xml и сохранить ваши источники или java-документы (если они выбраны) только для разработки прямо на вашем компьютере. ~/.m2

Ответ 9

В Eclipse

  • Щелкните правой кнопкой мыши на pom.xml
  • Выберите Run AsMaven 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.

снимок экрана пункта контекстного меню " Скачать исходники & выбирается в проекте NetBeans 8 управляемый Maven

Ответ 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/

и вы получите страницу, подобную этой, выберите нужную версию, просто наслаждайтесь! enter image description here

enter image description here

Ответ 16

Для отладки вы также можете использовать "Java Decompiler", такой как: JAD и декомпилировать исходный код на лету (хотя сгенерированный исходный код никогда не совпадает с исходным). Затем установите JAD в качестве плагина в Eclipse или вашей любимой IDE.

Ответ 17

Репозитории Maven предоставляют простой способ загрузки исходных файлов jar.

Я объясню это с помощью демонстрации "spring-boot-actator-autoconfigure".

  1. Перейти в хранилище Maven - https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure
  2. На странице перечислены различные версии. Нажмите на нужный, скажем, 2.1.6. ВЫПУСК - https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE
  3. На странице есть ссылка "Просмотреть все" рядом с "Файлы". Нажмите это - https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE/
  4. На странице перечислены различные файлы, в том числе один для источников - 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