Gradle - przegląd
"Gradle is an open source build automation system"
Ant i Maven odnieśli znaczny sukces na rynku JAVA. Ant było pierwszym narzędziem do budowania wydanym w 2000 roku i zostało opracowane w oparciu o ideę programowania proceduralnego. Później został ulepszony o możliwość akceptowania wtyczek i zarządzania zależnościami przez sieć z pomocą Apache-IVY. Główną wadą jest XML jako format do pisania skryptów kompilacji, ponieważ hierarchia nie jest dobra w programowaniu proceduralnym, a XML ma tendencję do niemożliwości zarządzania dużymi rozmiarami.
Maven został wprowadzony w 2004 roku. Zawiera wiele ulepszeń niż ANT. Zmienia swoją strukturę i nadal używa XML do pisania specyfikacji kompilacji. Maven opiera się na konwencjach i może pobierać zależności przez sieć. Główne zalety Mavena to cykl życia. Podczas ciągłego przestrzegania tego samego cyklu życia dla wielu projektów. Wiąże się to z kosztem elastyczności. Maven boryka się również z problemami związanymi z zarządzaniem zależnościami. Nie radzi sobie dobrze z konfliktami między wersjami tej samej biblioteki, a złożone, dostosowane skrypty budowania są w rzeczywistości trudniejsze do napisania w maven niż w ANT.
Wreszcie Gradle pojawił się w 2012 roku. Gradle posiada kilka wydajnych funkcji z obu narzędzi.
Funkcje Gradle
Poniżej znajduje się lista funkcji oferowanych przez Gradle.
Declarative builds and build-by-convention- Gradle jest dostępny z oddzielnym językiem specyficznym dla domeny (DSL) opartym na języku Groovy. Gradle zapewnia deklaratywne elementy języka. Te elementy zapewniają również obsługę budowania według konwencji dla języków Java, Groovy, OSGI, Web i Scala.
Language for dependency based programming - Język deklaratywny znajduje się na górze wykresu zadań ogólnego przeznaczenia, który możesz w pełni wykorzystać w swojej kompilacji.
Structure your build- Gradle wreszcie umożliwia zastosowanie wspólnych zasad projektowania do kompilacji. Da ci idealną strukturę do budowy, dzięki czemu możesz zaprojektować dobrze zorganizowaną i łatwą w utrzymaniu, zrozumiałą konstrukcję.
Deep API - Korzystając z tego interfejsu API, można monitorować i dostosowywać jego konfigurację i zachowanie podczas wykonywania do jego rdzenia.
Gradle scales - Gradle może z łatwością zwiększyć swoją produktywność, od prostych i pojedynczych projektów po duże korporacyjne kompilacje z wieloma projektami.
Multi-project builds- Gradle obsługuje kompilacje z wieloma projektami i obsługuje kompilacje częściowe. Jeśli zbudujesz podprojekt, Gradle zajmie się budowaniem wszystkich podprojektów, od których zależy.
Different ways to manage your builds - Gradle obsługuje różne strategie zarządzania zależnościami.
Gradle is the first build integration tool- Gradle w pełni obsługiwane dla zadań ANT, infrastruktura repozytoriów Maven i Lvy do publikowania i pobierania zależności. Gradle udostępnia również konwerter do przekształcania pliku pom.xml Mavena na skrypt Gradle.
Ease of migration- Gradle może łatwo dostosować się do dowolnej posiadanej konstrukcji. Dlatego zawsze możesz opracować swoją kompilację Gradle w tej samej gałęzi, w której możesz zbudować skrypt na żywo.
Gradle Wrapper- Gradle Wrapper umożliwia wykonywanie kompilacji Gradle na maszynach, na których nie jest zainstalowany Gradle. Jest to przydatne do ciągłej integracji serwerów.
Free open source - Gradle to projekt typu open source, objęty licencją w ramach licencji oprogramowania Apache (ASL).
Groovy- Skrypty budowania Gradle są napisane w Groovy. Cały projekt Gradle jest zorientowany na używanie go jako języka, a nie jako sztywne ramy. Groovy pozwala na napisanie własnego scenariusza z pewnymi abstrakcjami. Całe API Gradle jest w pełni zaprojektowane w języku Groovy.
Dlaczego Groovy?
Pełne API Gradle zostało zaprojektowane przy użyciu języka Groovy. Jest to zaleta wewnętrznego DSL nad XML. Gradle to narzędzie do budowania ogólnego przeznaczenia; jego głównym celem są projekty Java. W takich projektach członkowie zespołu będą dobrze zaznajomieni z Javą i lepiej, aby kompilacja była jak najbardziej przejrzysta dla wszystkich członków zespołu.
Języki takie jak Python, Groovy lub Ruby są lepsze do budowania frameworka. Dlaczego wybrano Groovy, ponieważ oferuje zdecydowanie największą przejrzystość dla osób używających Javy. Podstawowa składnia Groovy jest taka sama jak Java. Groovy zapewnia o wiele więcej.