Java

Репозитории 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
| - главен
'- Java
'-- Здравей свят
'-- Здравей свят.java

В helloworld.java, можете да поставите следния код:

внос орг.апаш.общи неща.lang3.StringUtils;
публичен клас helloworld
публична статична void main (String [] args)
String поздрави = "Hello World!";
Система.навън.println (поздрави);
Система.навън.println (StringUtils.swapCase (поздрави));

И в изграждането.gradle файл можете да поставите следното:

приложи плъгин: 'java'
версия = '1.0 '
хранилища
mavenCentral ()

зависимости
компилира група: 'org.апаш.commons ', име:' commons-lang3 ', версия:' 3.7 '

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

Нека да обсъдим какво се случва в горния скрипт за изграждане. Казва на Gradle да потърси в хранилището на Maven версията 3 на commons-lang3.7. Също така се казва на Gradle да опакова зависимостите в jar файла. Ако премахнете от конфигурациите.компилиране.съберете реда zipTree it, тогава ще трябва да включите външните зависимости в пътя на класа, когато стартирате програмата.

Сега от основната папка можете да стартирате компилацията с командата

$ gradle буркан
Трябва да видите резултати като този:
$ gradle буркан
Изтеглете https: // repo.maven.апаш.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.пом
Изтеглете https: // repo.maven.апаш.org / maven2 / org / apache / commons / commons-parent / 42 /
commons-parent-42.пом
Изтеглете https: // repo.maven.апаш.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.файл с буркан. И щяхте да получите грешка като тази:

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

Gradle ви улеснява да пакетирате зависимостите си във вашия пакет.

Заключение

Използването на хранилища Gradle и функционалности на зависимости може да опрости процеса ви на управление на зависимости. Не е нужно ръчно да следите всичко.

Допълнително проучване:

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

Преглед на безжична мишка на Microsoft Sculpt Touch
Наскоро прочетох за Microsoft Sculpt Touch безжична мишка и реших да я купя. След като го използвах известно време, реших да споделя опита си с него. ...
Екранен тракпад и указател на мишката на AppyMouse за таблети с Windows
Потребителите на таблети често пропускат показалеца на мишката, особено когато са привични да използват лаптопите. Смартфоните и таблетите със сензоре...
Средният бутон на мишката не работи в Windows 10
The среден бутон на мишката ви помага да превъртате дълги уеб страници и екрани с много данни. Ако това спре, добре ще свършите да използвате клавиату...