Ява

Репозитории Gradle

Репозитории Gradle
Gradle ищет внешние зависимости в репозиториях. Репозиторий Gradle организован с использованием группы, имени и версии. Gradle совместим с различными форматами репозиториев, такими как Maven и Ivy.

Понимание управления зависимостями в Gradle

Репозитории используются в Gradle для управления зависимостями. В зависимости от Gradle есть два компонента: зависимости и публикации проекта.

Когда вы создаете проект на Gradle, вам, вероятно, потребуются библиотеки других разработчиков. Предположим, вам нужна библиотека Apache Commons Lang для специальных операций со строками. Значит, он нужен вам в пути к классам, чтобы ваш код работал. И Apache Commons Lang могут потребоваться дополнительные библиотеки, о которых вы не знаете. Gradle позволяет вам указать конкретную зависимость, в которой нуждается ваш проект, и он перейдет в указанный репозиторий, например Maven или Ivy, и выяснит все связанные зависимости, загрузит файлы и автоматически настроит их для вас.

Gradle также имеет возможность публиковать ваши артефакты. Вы можете решить, что означает публикация для вашего конкретного случая. Вы можете опубликовать его локально или опубликовать в репозитории Maven или Ivy.

Пример репозитория Gradle

Предположим, мы хотим использовать класс StringUtils из библиотеки Apache Commons Lang. Давайте настроим директора вот так:

Привет мир
| - построить.Gradle
'- src
| - главная
'-- Ява
'-- Привет мир
'-- Привет мир.Ява

В helloworld.java, вы можете поместить следующий код:

организация импорта.апач.общественное достояние.lang3.StringUtils;
public class helloworld
public static void main (String [] args)
String greetings = "Привет, мир!!";
Система.вне.println (привет);
Система.вне.println (StringUtils.swapCase (привет));

И в сборке.gradle файл вы можете поместить следующее:

применить плагин: 'java'
версия = '1.0 '
репозитории
mavenCentral ()

dependencies
собрать группу: 'org.апач.commons ', имя:' commons-lang3 ', версия:' 3.7 '

банка
из конфигураций.компилировать.собери zipTree it

Давайте обсудим, что происходит в приведенном выше скрипте сборки. Он сообщает Gradle поискать в репозитории Maven версию 3 commons-lang3.7. Он также сообщает Gradle упаковать зависимости в файл jar. Если вы удалите из конфигураций.компилировать.collect zipTree it строка, тогда вам нужно будет включить внешние зависимости в путь к классам при запуске программы.

Теперь из корневой папки можно запустить сборку командой

$ gradle jar
Вы должны увидеть такие результаты:
$ gradle jar
Скачать https: // репо.знаток.апач.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.пом
Скачать https: // репо.знаток.апач.org / maven2 / org / apache / commons / commons-parent / 42 /
Обще-родитель-42.пом
Скачать https: // репо.знаток.апач.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.банка
СТРОИТЬ УСПЕШНО за 6 секунд
2 действенные задачи: 1 выполнена, 1 актуальна

Вы можете запустить сборку так:

$ java -cp build / libs / helloworld-1.0.банка helloworld
Привет мир!
Привет мир!

Если бы вы не включили зависимости в свою сборку, классы StringUtils не были бы включены в ваш helloworld-1.0.файл jar. И вы получили бы такую ​​ошибку:

$ java -cp build / libs / helloworld-1.0.банка helloworld
Привет мир!
Исключение в потоке "main" java.язык.NoClassDefFoundError: org / apache / commons / lang3 /
StringUtils в helloworld.основной (helloworld.java: 11)
Вызвано: java.язык.ClassNotFoundException: org.апач.общественное достояние.lang3.StringUtils
в Java.сеть.URLClassLoader.findClass (URLClassLoader.java: 381)
в Java.язык.ClassLoader.loadClass (ClassLoader.java: 424)
на солнце.разное.Пусковая установка $ AppClassLoader.loadClass (Launcher.java: 331)
в Java.язык.ClassLoader.loadClass (ClassLoader.java: 357)
… 1 больше

Gradle упрощает упаковку зависимостей в пакет.

Заключение

Использование репозиториев Gradle и функций зависимостей может упростить процесс управления зависимостями. Вам не нужно вручную все отслеживать.

Дальнейшее изучение:

Управление зависимостями Gradle для проектов Java

Битва за Веснот 1.13.6 Выпущена разработка
Битва за Веснот 1.13.6, выпущенная в прошлом месяце, является шестой разработкой в ​​1.13.x и содержит ряд улучшений, в первую очередь пользовательско...
Как установить League Of Legends на Ubuntu 14.04
Если вы поклонник League of Legends, то это возможность для вас протестировать League of Legends. Обратите внимание, что LOL поддерживается в PlayOnLi...
Установите последнюю версию игры OpenRA Strategy в Ubuntu Linux
OpenRA - это игровой движок Libre / Free Real Time Strategy, воссоздающий ранние игры Westwood, такие как классическая Command & Conquer: Red Alert. Р...