Zamin powstał Maven

Czy zastanawiałeś/łaś się kiedyś jak to było zanim powstał Maven? Albo co tak naprawdę się dzieje kiedy wpisujemy komendę: mvn clena install? W dzisiejszym artykule opowiem o tym jak to było dawniej 🙂

1. Czasy przed Maven-em

Czasy przez Maven-em polegały nie tylko na wpisywaniu szeregu komend aby skompilować czy też spakować projekt. Do kompilacji projektu posługiwano się poleceniem:

  • javac src/main/java/pl/devwords/app.java -d target.

I tak kolejno: javac to kompilator Javy który zamienia kod źródłowy na kod bajtowy. Następnie src/main/java/pl/devwords/app.java – jest to ścieżka do pliku źródłowego. -d  target natomiast informuje że kod bajtowy zostaje wrzucony do folderu „target”. Zauważmy że w tym poleceniu odwołujemy się tylko do jednej wybranej klasy. Więc aby nieco ten proces usprawnić można posłużyć się komendą:

  • javac $(find . -name „*.java”) -d target

Polecenie robi dokładnie to samo z tą różnicą że najpierw wyszukuje wszystkie pliki z rozszerzeniem .java. Następnie kompiluje je do kodu bajtowego i umieszcza w folderze target.

2. Pakowanie bez Maven-a

Aby można było aplikacje uruchomić następuje pakowanie aplikacji do JAR. W tym celu używana jest aplikacja jar.exe. Następnie tak spakowaną aplikacje wysyłamy do maszyny wirtualnej. Ponieważ maszyna wirtualnej nie wie gdzie jest punkt startowy – musimy jej to powiedzieć. Aby to zrobić trzeba utworzyć dokument manifest.txt. W tym pliku wpisujemy: Main-Class: ścieżka do naszej klasy uruchomieniowej np.:

  • Main-Class: pl.devwords.sortarray.App

Java parsując plik musi dokładnie wiedzieć gdzie jest koniec tej klasy. Dlatego wpisujemy np.: „empty line” lub „blank line”. Następnie trzeba wywołać komendę:

  • jar cfm target/App.jar manifest.txt -C target .

jar cfm + ścieżka gdzie to utworzyć + ścieżka do manifest + dodanie kodu bajtowego do naszego archiwum. czyli -C katalog na którym ma się ustawić I co ma wczytać czyli -C target

Kropka oznacza aby uwzględnić wszystko i wczytać z katalogu target. Gdy paczka jest gotowa uruchomienie archiwum następuje poprzez

  • java -jar target/App.jar

3. Dependency

Dawnymi czasy również dodawanie/usuwanie bibliotek ręcznie do projektu było dużo bardziej czasochłonne niż obecnie. Aby to zrobić trzeba było powiedzieć kompilatorowi gdzie biblioteka którą chcemy dołączyć się znajduje.

  • -cp src/resources/lib/\*

co znaczy – dodaj do class path wszystkie biblioteki które są w pliku lib. Aby skompilować i zbudować projekt z nowymi bibliotekami należało usunąć plik target. Następnie wykonać polecenie:

  • javac $(find . -name „*.java”) -d target -cp src/resources/lib/\*
  • jar cfm target/App.jar manifest.txt -C target .
  • java -jar target/App.jar

W następnej kolejności wygenerowanie testów i dokumentacji i to wszystko mieści się w poleceniu mvn clean package.

4. Podsumowanie

I jak podoba Ci się przeszłość bez Maven-a? Praca z maven-em czyni pracę łatwiejszą i przyjemniejszą. Nie tylko jesli chodzi o dodawanie kolejnych bibliotek do projektu ale również do jego czyszczenia oraz pakowania a nawet deployowania w dalszysz stepach.

 
 

 

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *