JavaRush /Blog Java /Random-PL /Część 4: Podstawy Mavena

Część 4: Podstawy Mavena

Opublikowano w grupie Random-PL
Materiał ten stanowi część serii „Wprowadzenie do rozwoju przedsiębiorstwa”. Poprzednie artykuły: Część 4. Podstawy Mavena - 1Maven to narzędzie do zarządzania i budowania projektów - prawdziwy asystent programisty Java. Ułatwia życie programiście na wszystkich etapach pracy: od stworzenia struktury projektu i podłączenia niezbędnych bibliotek po wdrożenie produktu na serwerze. Pracując z dowolnym frameworkiem, będziesz musiał używać Mavena. Przyjrzyjmy się więc dzisiaj jego głównym funkcjom i zobaczmy, jak należy z nich korzystać.

Instalacja Mavena krok po kroku

  1. Najpierw musisz zainstalować Mavena, pobierając go z tego linku .

  2. Następnie należy rozpakować pobrane archiwum i ustawić zmienną środowiskową M2_HOME na odnośnik do lokalizacji rozpakowanego archiwum. Na przykład C:\Program Files\maven\

  3. Aby sprawdzić, czy wszystko zostało zainstalowane, wpisz w wierszu poleceń:

    wersja mvn

  4. Jeśli wyświetlą się informacje o wersji Mavena, Java itp., jesteś gotowy do pracy.

  5. Teraz otwórz IntelliJIDEA i utwórz nowy projekt. W pierwszym oknie wybierz Mavena:

    Część 4. Podstawy Mavena - 2
  6. Kliknij Dalej i wypełnij następujące okno dialogowe:

    Część 4. Podstawy Mavena - 3
  7. Następnie utwórz projekt w wymaganej lokalizacji w standardzie.

    Po utworzeniu projektu zwróć uwagę na jego strukturę:

    Część 4. Podstawy Mavena - 4
To jest standardowa struktura projektu Maven :
  • folder src/main/java zawiera klasy Java;
  • w src/main/resources - zasoby, z których korzysta nasza aplikacja (strony HTML, obrazy, arkusze stylów itp.);
  • src/test - do testów.
Zwróć także uwagę na plik o nazwie pom.xml . To jest główny plik do zarządzania Mavenem . Cały opis projektu znajduje się tutaj. Nie ma tam jeszcze zbyt wielu informacji, ale dodamy je teraz.

Zarządzanie zależnościami w Mavenie

Być może spotkałeś się z wyrażeniem „menedżer zależności” lub „menedżer zależności”. Maven może wszystko. Dzięki Mavenowi nie musisz tracić dużo czasu na szukanie potrzebnej biblioteki w Internecie, pobieranie jej, a następnie podłączanie do projektu: wystarczy dodać wymaganą bibliotekę do listy zależności Mavena. Zależności są zapisywane w węźle XML zależności.Załóżmy, że potrzebujesz biblioteki Apache Commons IO w swoim projekcie, aby uprościć pracę z plikami. Aby dodać bibliotekę, napisz pięć linii w pliku pom.xml:
<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Twój plik pom.xml powinien teraz wyglądać następująco:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Następnie zezwól IntelliJ IDEA na zaimportowanie zależności (w prawym dolnym rogu powinno pojawić się okno dialogowe). Teraz biblioteka jest gotowa do użycia:
import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
Wszystkie kolejne zależności powinny być również zapisane wewnątrz znacznika < zależności >. Być może zastanawiasz się: skąd wiesz, jakie informacje o bibliotece musisz uwzględnić w tagu <dependentency>? Tutaj wszystko jest proste. W takich przypadkach zawsze podawane są trzy parametry: groupId, artifactId i wersja. Możesz znaleźć te parametry na dwa sposoby:
  1. Na stronie biblioteki. Jeśli potrzebujemy Apache Commons IO, przejdź do oficjalnej strony i wybierz zakładkę Informacje o zależnościach. Wszystkie niezbędne informacje znajdują się tutaj - możesz je po prostu skopiować i dodać do naszej sekcji zależności.

  2. W repozytorium Mavena . W wyszukiwarce wpisz „apache commons io”, a zobaczysz wszystkie dostępne wersje biblioteki. Po wybraniu tego, którego potrzebujesz, po prostu skopiuj:

    <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.6</version>
           </dependency>

    i dodaj do swojego pom.xml.

Rodzaje repozytoriów Mavena

Warto jeszcze raz wspomnieć o repozytorium Mavena, bo tak naprawdę mamy ich dwa – zewnętrzne (globalne) i lokalne, na Twoim komputerze. Wszystkie biblioteki, które dodajesz do swoich projektów, są zapisywane w lokalnym repozytorium. Kiedy Maven dodaje do projektu wymaganą zależność, najpierw sprawdza lokalne repozytorium pod kątem obecności takiej biblioteki i dopiero jeśli jej tam nie znajdzie, zwraca się do zewnętrznego. Jak widzisz, możesz używać Mavena do dodawania zależności, ale to nie wszystko, co potrafi.

Budowanie projektu w Javie przy użyciu Mavena

Ta funkcja może wydawać się bezsensowna dla nowicjusza. Dlaczego jest to potrzebne, jeśli istnieje IDE? Ale nie! Po pierwsze, serwer, na którym będziesz musiał zbudować aplikację, może nie tylko posiadać środowisko programistyczne, ale także interfejs graficzny. Po drugie, przy dużych projektach Maven lepiej radzi sobie z zadaniami montażu projektu. Dlatego nie zadręczajmy się czekaniem, tylko zastanówmy się nad procesem budowy aplikacji z wykorzystaniem Mavena.

Fazy

Proces budowy aplikacji nazywany jest cyklem życia projektu Maven i składa się z faz. Możesz je obejrzeć w IDEA, klikając Maven>przykład>Cykl życia w prawym górnym rogu: Część 4. Podstawy Mavena - 5Jak widać, jest 9 faz:
  1. clean - usuwa wszystkie skompilowane pliki z katalogu docelowego (miejsca, w którym zapisywane są gotowe artefakty);
  2. validuj – sprawdzanie, czy dostępne są wszystkie informacje potrzebne do zbudowania projektu;
  3. kompilacja - kompilowane są pliki z kodem źródłowym;
  4. test — uruchamiane są testy;
  5. pakiet - skompilowane pliki są pakowane (do archiwum jar, war itp.);
  6. zweryfikować — przeprowadzane są sprawdzenia w celu potwierdzenia gotowości spakowanego pliku;
  7. install - pakiet zostaje umieszczony w lokalnym repozytorium. Teraz może być używany w innych projektach jako biblioteka zewnętrzna;
  8. strona internetowa - tworzona jest dokumentacja projektowa;
  9. wdrożyć - zebrane archiwum jest kopiowane do zdalnego repozytorium.
Wszystkie fazy są wykonywane sekwencyjnie: nie możesz rozpocząć, powiedzmy, czwartej fazy, dopóki nie zostaną ukończone fazy 1-3. Fazę można rozpocząć na dwa sposoby:
  • poprzez linię poleceń:

    pakiet mvn

    Część 4. Podstawy Mavena - 6
  • używając Intellij IDEA:

    Część 4. Podstawy Mavena - 7

    Przed uruchomieniem pakietu przeprowadzane są fazy sprawdzania poprawności, kompilacji i testowania. Wyjątkiem jest faza czysta. Wskazane jest wywoływanie go przed każdą kompilacją nowego projektu. Fazy ​​można wymienić oddzielone spacjami:

    mvn czysty pakiet.

Ponadto każda faza ma fazy przed i po: na przykład przed wdrożeniem, po wdrożeniu, wstępne czyszczenie, czyszczenie po czyszczeniu, ale są one używane dość rzadko. Ponadto każda faza ma cele. Standardowe cele są domyślnie uwzględnione, dodatkowe są dodawane przez wtyczki Maven. Czasami w jakiejś fazie trzeba wykonać dodatkową funkcjonalność. Są do tego wtyczki Maven. Listę oficjalnych wtyczek znajdziesz na stronie Mavena . Pamiętaj jednak, że nadal istnieje wiele niestandardowych wtyczek, które można znaleźć w zasobach stron trzecich. Cóż, oczywiście, jeśli jest jakaś egzotyczna potrzeba, zawsze masz możliwość samodzielnego napisania takiej wtyczki .

Wtyczki

Aby dodać wtyczkę Maven do projektu, jej opis, podobnie jak zależności, należy umieścić w pliku pom.xml w tagach <build> i <plugins>. Na przykład potrzebujemy wtyczki, aby sprawdzić, czy wszystkie nasze zewnętrzne biblioteki korzystają z najnowszych wersji. Po krótkich poszukiwaniach w Internecie możesz znaleźć tę wtyczkę z instrukcją obsługi. Ustawmy jego groupId, artefaktId i wersję. Zapiszmy jakie cele musi osiągnąć i w jakiej fazie. W naszym przypadku sprawdzanie zależności w bieżącym pliku pom.xml jest ustawione na fazę sprawdzania poprawności. Teraz nasza „pamięć” wygląda następująco:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Nadal możemy kontynuować pracę nad naszym projektem. Spróbujmy jednak zmienić wersję Apache Commons IO na 2.0 i rozpocząć budowanie projektu. Otrzymujemy: [ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1] Tutaj mamy błąd kompilacji spowodowany przez wtyczkę. Komunikat o błędzie informuje, że używamy wersji 2.0, gdy dostępna jest wersja 2.6. Ogólnie Maven jest bardzo przydatnym narzędziem. Na początku może wydawać się trudny w obsłudze, ale poćwicz, twórz swoje projekty w Mavenie, a po pewnym czasie będziesz bardzo zadowolony z rezultatu. W artykule celowo pominięto wiele szczegółów na temat Mavena – skupiliśmy się na tym, co najważniejsze. Ale perfekcja nie ma granic: więcej o Mavenie możesz przeczytać na oficjalnej stronie produktu . Część 5. Serwlety. Pisanie prostej aplikacji internetowej Część 6. Kontenery serwletów Część 7. Wprowadzenie do wzorca MVC (Model-View-Controller) Część 8. Pisanie małej aplikacji uruchamianej w trybie spring-boot
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION