Gradle - Zarządzanie zależnościami

Skrypt kompilacji Gradle definiuje proces tworzenia projektów; każdy projekt zawiera zależności i kilka publikacji. Zależności to elementy obsługujące tworzenie projektu, takie jak wymagany plik JAR z innych projektów i zewnętrzne pliki JAR, takie jak JDBC JAR lub Eh-cache JAR w ścieżce klas. Publikacje oznaczają wyniki projektu, takie jak pliki klas testowych i pliki kompilacji, takie jak pliki wojenne.

Większość projektów nie jest samowystarczalna. Potrzebują plików skompilowanych przez inne projekty, aby skompilować i przetestować pliki źródłowe. Na przykład, aby użyć Hibernate w projekcie, musisz dołączyć kilka plików JAR Hibernate do ścieżki klas. Gradle używa specjalnego skryptu do zdefiniowania zależności, które należy pobrać.

Gradle zajmuje się budowaniem i publikowaniem gdzieś wyników. Publikowanie odbywa się na podstawie zdefiniowanego zadania. Może chcieć skopiować pliki do katalogu lokalnego lub przesłać je do zdalnego repozytorium Maven lub Lvy albo możesz użyć plików z innego projektu w tej samej kompilacji z wieloma projektami. Proces publikowania zadania można nazwać publikacją.

Deklarowanie swoich zależności

Konfiguracja zależności to nic innego jak definiowanie zestawu zależności. Możesz użyć tej funkcji, aby zadeklarować zewnętrzne zależności, które chcesz pobrać z sieci. To definiuje różne kategorie, takie jak poniżej.

apply plugin: 'java'

repositories {
   mavenCentral()
}

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
   testCompile group: 'junit', name: 'junit', version: '4.+'
}

Konfiguracje zależności

Konfiguracja zależności to nic innego jak definiowanie zestawu zależności. Możesz użyć tej funkcji do zadeklarowania zależności zewnętrznych, które chcesz pobrać z sieci. Definiuje następujące różne standardowe konfiguracje.

  • Compile - Zależności wymagane do skompilowania produkcyjnego źródła projektu.

  • Runtime- Zależności wymagane przez klasy produkcyjne w czasie wykonywania. Domyślnie obejmuje również zależności czasu kompilacji.

  • Test Compile- Zależności wymagane do skompilowania testowego źródła projektu. Domyślnie zawiera skompilowane klasy produkcyjne i zależności czasu kompilacji.

  • Test Runtime- Zależności wymagane do uruchomienia testów. Domyślnie zawiera zależności w czasie wykonywania i kompilacji testowej.

Zależności zewnętrzne

Zależności zewnętrzne są jednymi z typów zależności. Jest to zależność od niektórych plików zbudowanych poza bieżącą kompilacją i przechowywanych w jakimś repozytorium, takim jak centrala Maven, korporacyjne repozytorium Maven lub lvy, lub katalog w lokalnym systemie plików.

Poniższy fragment kodu służy do zdefiniowania zależności zewnętrznej. Użyj tego kodu wbuild.gradle plik.

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}

Zależność zewnętrzna deklaruje zależności zewnętrzne, a forma skrótu wygląda jak „grupa: nazwa: wersja”.

Repozytoria

Podczas dodawania zależności zewnętrznych. Gradle szuka ich w repozytorium. Repozytorium to po prostu zbiór plików uporządkowanych według grupy, nazwy i wersji. Domyślnie Gradle nie definiuje żadnych repozytoriów. Musimy jawnie zdefiniować co najmniej jedno repozytorium. Poniższy fragment kodu definiuje sposób definiowania repozytorium Maven. Użyj tego kodu wbuild.gradle plik.

repositories {
   mavenCentral()
}

Poniższy kod służy do zdefiniowania zdalnego użytkownika. Użyj tego kodu wbuild.gradle plik.

repositories {
   maven {
      url "http://repo.mycompany.com/maven2"
   }
}

Publikowanie artefaktów

Konfiguracje zależności są również używane do publikowania plików. Te opublikowane pliki nazywane są artefaktami. Zwykle używamy wtyczek do definiowania artefaktów. Musisz jednak powiedzieć Gradle, gdzie opublikować artefakty. Możesz to osiągnąć, dołączając repozytoria do zadania przesyłania archiwów. Spójrz na następującą składnię publikowania repozytorium Maven. Podczas wykonywania Gradle wygeneruje i załaduje Pom.xml zgodnie z wymaganiami projektu. Użyj tego kodu wbuild.gradle plik.

apply plugin: 'maven'

uploadArchives {
   repositories {
      mavenDeployer {
         repository(url: "file://localhost/tmp/myRepo/")
      }
   }
}