Narzędzia - Java, Gradle i IntelliJ

Java jest jednym z najpopularniejszych języków programowania, cechującym się obiektowością, silnym typowaniem, przenośnością oraz prostotą. Programy napisane w języku Java kompilowane są do tzw. bytecode’u, a następnie uruchamiane są w tak zwanej wirtualnej maszynie, w dowolnym systemie operacyjnym.

Zacznij przygodę z programowaniem w technologii Java od przygotowania środowiska programistycznego w systemie Windows.

Pracujesz w systemie macOS? Przygotuj środowisko dla Java i Selenium na macOS: https://blog.qalabs.pl/narzedzia/java-selenium-macos/

Change log

2019/5/12 - Kod źródłowy projektu został zaktualizowany do Java 12, Gradle 5.4.1, JUnit 5.4.2. Drobne zmiany w artykule.
2019/2/27 - Java 11: OpenJDK vs Oracle JDK, Gradle 5.2.1, kod źródłowy projektu został zaktualizowany (https://gitlab.com/qalabs/blog/junit5-gradle-template.git)

Java Development Kit (JDK)

Java SE Development Kit zawiera narzędzia do tworzenia, debuggowania i monitorowania aplikacji stworzonych w języku Java oraz ich uruchamiania w wirtualnej maszynie Java.

Wraz z wydaniem wersji Java 11, Oracle zmieniło zasady licencjonowania dostarczanego przez siebie JDK:

Każda z licencji posiada różne binaria, ale różnice są kosmetyczne i nieodczuwalne w trakcie pracy.

Note: Więcej informacji znajdziesz na oficjalnym blogu Oracle: https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later

Instalacja OpenJDK

Instalacja OpenJDK w systemie Windows jest bardzo prosta:

  • Pobierz binaria i rozpakuj do katalogu np. C:\java\jdk-12
  • Dodaj zmienną systemową JAVA_HOME wskazującą na katalog C:\java\jdk-12
  • Dodaj JAVA_HOME\bin do zmiennej systemowej PATH
  • Uruchom wiersz poleceń i wykonaj polecenie: javac -version

Instalacja Oracle JDK

Oracle JDK możesz pobrać z oficjalnej strony Oracle: http://www.oracle.com/technetwork/java/javase/downloads/index.html. Pobierz i zainstaluj najnowszą wersję platformy.

Tip: Chcesz nauczyć się Javy? Zacznij od oficjalnego tutoriala: https://docs.oracle.com/javase/tutorial/ i wybierz tematy z rozdziału Trails Covering the Basics

Aby sprawdzić, czy instalacja przebiegła prawidłowo, uruchom wiersz poleceń i wpisz:

λ javac -version
javac 12.0.1

Tip: Dla systemu Windows istnieje sporo interesujących emulatorów konsoli, które ułatwiają codzienną pracę z wierszem poleceń. Szczególnie polecam narzędzie cmder. Instalacja i pierwsze kroki z tym narzędziem opisane zostały w osobnym artukule: https://blog.qalabs.pl/narzedzia/git-cmder.html

Dodatkowo, możesz upewnić się, że zmienna środowiskowa JAVA_HOME została poprawnie ustawiona podczas instalacji:

λ echo %JAVA_HOME%
C:\Program Files\Java\jdk-12.0.1

Instalacja Gradle

Gradle to otwartoźródłowe (ang. open-source) narzędzie do automatyzacji procesu budowania aplikacji, w tym do zarządzania zależnościami, który używa języka domenowego Groovy lub Kotlin do tworzenia konfiguracji projektu.

Gradle jest wspierany przez większość środowisk programistycznych, może być również z łatwością uruchamiany z wiersza poleceń lub poprzez serwer ciągłej integracji (ang. continuous integration, CI).

Gradle zdobył popularność między innymi dzięki łatwej i rozszerzalnej konfiguracji, szybkości działania (przyrostowe budowanie aplikacji, możliwość równoległego wykonywania zadań) oraz wsparciu wielu języków i technologii (np.: Java, C++, Groovy).

Tip: Tworząc dowolny, nawet najbardziej podstawowy projekt w technologii Java, zawsze używaj narzędzia do automatyzacji procesu budowania aplikacji. Najpopularniejsze narzędzia dla projektów Java to Gradle i Maven. Przeczytaj o różnicach tutaj: https://gradle.org/maven-vs-gradle

W systemie Windows instalacja Gradle sprowadza się do pobrania i rozpakowania dystrybucji, dodania zmiennej systemowej GRADLE_HOME wskazującej na katalog dystrybucji i dodania GRADLE_HOME/bin do zmiennej systemowej PATH.

Instalacja Gradle jest bardzo dobrze opisana w oficjalnej dokumentacji narzędzia pod adresem: https://docs.gradle.org/current/userguide/installation.html.

Dokumentacja Gradle w ogóle jest wyjątkowo dobrze napisana. Zawiera nie tylko szczegółowe informacje na temat narzędzia, ale również wiele przykładów, które możesz wykorzystać tworząc swój projekt.

W celu przetestowania poprawności instalacji Gradle, otwórz wiersz poleceń i wykonaj komendę:

λ gradle --version

Tip: Zainstaluj Gradle w wersji conajmiej 5.0, w której pojawia się wsparcie dla Javy 11. W ogólności, zaleca się instalację najnowszej wersji Gradle.

Konfiguracja projektu opartego o Java, JUnit 5 i Gradle

W celu weryfikacji poprawności konfiguracji środowiska, wykorzystaj szablon projektu junit5-gradle-template.

  • Uruchom cmder

  • Sklonuj projekt:

    git clone https://gitlab.com/qalabs/blog/junit5-gradle-template.git

  • Przejdź do katalogu projektu (junit5-gradle-template) i wykonaj polecenie:

    gradle clean test

Komenda uruchomi testy z użyciem Gradle, pobierając wcześniej niezbędne zależności oraz kompilując kod projektu. Jeśli wszystko zostało poprawnie skonfigurowane, wykona się prosty test:

1
2
3
4
5
6
7
8
9
10
Starting a Gradle Daemon (subsequent builds will be faster)

> Task :test

pl.qalabs.blog.junit5.JUnit5Tests > helloJUnit5() PASSED


BUILD SUCCESSFUL in 9s
4 actionable tasks: 4 executed

Tip: Alternatywnie możesz wykonać polecenie gradlew clean test, ponieważ projekt zawiera tak zwany Gradle Wrapper, który lokalnie (w katalogu projektu) zainstaluje zależności Gradle wymagane do jego uruchomienia.

Instalacja IntelliJ Community

IntelliJ IDEA to profesjonalne środowisko programistyczne oferujące między innymi:

  • rozbudowany edytor z kolorowaniem składni, analizą kodu i wykrywaniem błędów, podpowiadaniem składni,
  • ergonomiczny interfejs użytkownika, z zaawansowanymi funkcjami wyszukiwania, wsparciem skrótów klawiszowych,
  • zaawansowany debugger,
  • wsparcie dla systemów kontroli wersji, w tym oczywiście wsparcie dla Git,
  • wsparcie narzędzi do budowania projektów takich jak Gradle czy Maven,
  • wsparcie dla najnowszych frameworków i biblitek, w tym wsparcie dla JUnit 5.

IntelliJ występuje w dwóch wersjach: Ultimate (komercyjna) i Community (open-source). Wersja Community jest całkowicie wystarczająca do projektów nie używających frameworków i technologii dla aplikacji klasy enterprise. Doskonale zatem sprawdzi się w projektach opartych o standardową Javę i Selenium WebDriver.

Konfiguracja Java SDK

Uwaga: Zrzuty ekranów mogą różnić się w zależności od wersji JDK, którą zainstalowałeś.

Po instalacji i pierwszym uruchomieniu IntelliJ masz możliwość skonfigurowania domyślnego Java SE Development Kit dla nowych projektów. W tym celu w oknie powitalnym wybierz opcję Configure | Project Defaults | Project Structure. Przejdź do menu Platform Settings | SDKs i dodaj nowe SDK (+) wskazując na katalog zainstalowanego wcześniej Java SE Development Kit:

Tip: SDK = Software Development Kit, JDK = Java SE Development Kit. JDK jest podzbiorem SDK odpowiedzialnym za tworzenie i uruchamianie aplikacji.

Mając skonfigurowane co najmniej jedno SDK, możesz je wskazać jako domyślne dla projektów. Zrobisz to w menu Project Settings | Project. Nie zapominij o zmianie poziomu wspieranego języka. JUnit 5 wymaga conajmniej Java 8, zatem w opcji wyboru Project language level wskaż SDK default.

Zapisz zmiany.

Konfiguracja Git

IntelliJ ma doskonałe wsparcie dla systemu kontroli wersji Git. Jeżeli instalowałeś Git for Windows, to najprawdopodobniej IntelliJ automatycznie wykrył instalację i skonfigurował ją prawidłowo. Jeżeli nie instalowałeś Git for Windows i chcesz użyć dystrybucji dostarczonej z cmder, powinieneś wskazać instalację Git w IntelliJ ręcznie.

W tym celu, pozostając w oknie powitalnym, wybierz Configure | Settings, a następnie przejdź do menu Version Control | Git. W polu Path to Git executable wkaż plik git.exe znajdujący się w katalogu cmder\vendor\git-for-windows\bin:

Zapisz zmiany.

Kodowanie plików

IntelliJ domyślnie dla nowych plików w projekcie będzie używał kodowania systemowego. Dobrą praktyką jest kodowanie plików w UTF-8, niezależnie od systemowego. Aby zmienić ustawienia kodowania plików, pozostając w oknie powitalnym wybierz Configure | Settings, a następnie przejdź do menu Editor | File Encoding i zmień wszystkie ustawienia wskazując UTF-8, również dla plików properties.

Tip: Nie jesteś pewien, czy IntelliJ jest dla Ciebie? Możesz pracować z Eclipse lub Netbeans. Ja przez wiele lat pracowałem z Eclipse, ale dzisiaj nie wyborażam sobie innego IDE niż IntelliJ do tworzenia projektów opartych o JVM.

Integracja z Git Bash

IntelliJ dostarcza funkcję Terminal, zapewniającą integrację z interfejsem wiersza poleceń. Z łatwością możesz skonfigurować aplikację terminala i wskazać Git Bash jako domyślną.

Aby zmienić ustawienia terminala, pozostając w oknie powitalnym wybierz Configure | Settings, a następnie przejdź do menu Tools | Terminal. W polu Shell path wprowadź:

"C:\Program Files\Git\bin\bash.exe" --login -i

lub jeśli instalowałeś Git razem z cmder:

"\cmder\vendor\git-for-windows\bin\bash.exe" --login -i     

Teraz podczas uruchamiania okna terminala (Ctrl+F12) w IntelliJ, będziesz mógł pracować z Git Bash.

Import projektu do IntelliJ

Aby zaimportować projekt w IntelliJ, wybierz opcję File | Open i wskaż plik gradle.build. Otwórz plik jako projekt i poczekaj chwilę, aż zaimportuje się wraz ze wszystkimi zależnościami.

W IntelliJ otwórz plik pl.qalabs.blog.junit5.JUnit5Tests i uruchom test helloJUnit5, klikając lub używając skrótu Ctrl+Shift+F10:

Tip: W IntelliJ, pracując w kontekście projektu, masz możliwość konfiguracji ustawień projektu (Project Settings) dostępnych za pomocą skrótu Ctrl+Alt+S lub w menu File | Settings oraz ustawień domyślnych dla wszystkich nowych projektów dostępnych w menu File | Other Settings.

Co dalej?

Najlepszym źródłem wiedzy do nauki IntelliJ jest… oficjalna dokumentacja. Znajdziesz w niej wiele przydatnych informacji, które pomogą Ci rozpocząć efektywną pracę z tym środowiskiem.

Rafał Borowiec

Nazywam się Rafał Borowiec. Jestem w branży IT od ponad 10 lat, przygodę rozpoczynałem jako tester oprogramowania. Oprócz testowania oprogramowania i zapewniania jakości, specjalizuję się w wytwarzaniu oprogramowania oraz zarządzaniu projektami i zespołami. Chętnie dzielę się wiedzą, prowadzę blog dotyczący programowania, jestem wykładowcą oraz trenerem IT.