Gradle logo

Gradle

Gradle to jedno z narzędzi służących do budowania projektów. Na czym polega proces budowania projektów i dlaczego warto korzystać z narzędzi automatyzujących ten proces możesz przeczytać w tym artykule o Mavenie.

Choć Gradle powstał jako narzędzie do budowania projektów napisanych w Javie, to wspiera również projekty w takich językach jak: Kotlin, Groovy, Scala, C, C++, czy Java Script. Pierwsza wersja frameworka powstała w 2007 roku. Obecnie jest to drugi najpopularniejszy (zaraz po Mavenie) framework służący do zarządza procesem budowy i to właśnie w kontekście porównywania z Mavenem mówi się o Gradle najczęściej. Nawet twórcy tego frameworka porównują go na oficjalnej stronie z Mavenem.

Zalety Gradle

Największą zaletą Gradle jest jego wysoka wydajność przez wykonywanie tylko tych zadań dla których zmieniły się dane wejściowe np. pliki. Gradle pozwala również na cache’owanie wyników poprzednich zadań nawet jeśli zostały wykonane na innej maszynie. Inną zaletą jest jego prostota. Popularne typy projektów takie jak np. projekt w Javie są zdefiniowane jak typ projektu. Stosując wtyczki można łatwo i szybko uzyskać skrypty do budowania wielu projektów, a same pliki konfiguracyjne są dość małe.

Gradle pozwala na nadpisywanie istniejących konfiguracji dzięki czemu możliwe jest ich zastępowanie i dodawanie własnych typów zadań. Pomocne mogą okazać się również skany kompilacji, które zapewniają obszerne informacje o przebiegu kompilacji, których można użyć do zidentyfikowania problemów z kompilacją. Szczególnie dobrze pomagają zidentyfikować problemy z wydajnością kompilacji.

Budowanie projektu w Gradle

Gradle modeluje proces budowy jako ukierunkowany graf acykliczny (DAG) zadań (jednostek pracy). Kompilacja konfiguruje zestaw zadań i łączy je ze sobą - na podstawie ich zależności - w celu utworzenia tego DAG. Po utworzeniu wykresu zadań Gradle określa, które zadania należy uruchomić w jakiej kolejności, a następnie przystępuje do ich wykonania

Gradle

Budowanie projektu przy użyciu Gradle składa się z 3 faz

  • Inicjalizacja: Gradle wspiera kompilacje jedno i wieloprojektowe. Podczas fazy inicjalizacji Gradle określa, które projekty będą brały udział w kompilacji i tworzy osobne instancje dla każdego z tych projektów.
  • Konfiguracja: w tej fazie obiekty projektu są konfigurowane. Wykonywane są skrypty kompilujące wszystkich projektów, które biorą udział w procesie budowy.
  • Wykonanie: Gradle określa podzbiór zadań do wykonania, utworzonych i skonfigurowanych w fazie konfiguracji. Podzbiór jest określany przez argumenty nazwy zadania przekazane do polecenia gradle i do bieżącego katalogu. Gradle następnie wykonuje każde z wybranych zadań.

Źródła

  • https://docs.gradle.org/current/userguide/what_is_gradle.html