CodeGym /Blog Java /Random-PL /Część 4. Podstawy Mavena
John Squirrels
Poziom 41
San Francisco

Część 4. Podstawy Mavena

Opublikowano w grupie Random-PL
Ten materiał jest częścią serii „Wprowadzenie do rozwoju przedsiębiorstwa”. Poprzednie artykuły: Część 4. Podstawy Mavena - 1Maven to narzędzie do zarządzania i budowania projektów — pomocny pomocnik programisty Java. Ułatwia życie programistom na każdym etapie pracy: od stworzenia struktury projektu i podłączenia niezbędnych bibliotek do wdrożenia produktu na serwerze. Będziesz musiał używać Mavena podczas pracy z dowolnym frameworkiem. Więc dzisiaj przyjrzyjmy się jego głównym funkcjom i zobaczmy, jak z nich korzystać.

Instalacja Mavena krok po kroku

  1. Najpierw musimy zainstalować Mavena. Pobierz go z tego linku .

  2. Następnie rozpakuj pobrane archiwum i ustaw zmienną środowiskową M2_HOME na lokalizację rozpakowanego archiwum. Na przykład C:\\Program Files\\maven\\

  3. Aby upewnić się, że wszystko jest zainstalowane, wykonaj następujące polecenie w wierszu poleceń:

    wersja mvn

  4. Jeśli zostanie wyświetlona informacja o wersji dla Maven, Java itp., wszystko jest gotowe.

  5. Teraz otwórz IntelliJ IDEA i utwórz nowy projekt. W pierwszym oknie wybierz Maven:

    Część 4. Podstawy Mavena - 2
  6. Kliknij „Dalej” i wypełnij okno, które się pojawi:

    Część 4. Podstawy Mavena - 3
  7. Następnie, jak zwykle, utwórz projekt w dowolnym miejscu.

    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
  • folder src/main/resources zawiera zasoby używane przez aplikację (strony HTML, obrazy, arkusze stylów itp.)
  • folder src/test jest przeznaczony do testów
Zwróć również uwagę na plik o nazwie pom.xml . To jest główny plik do zarządzania Mavenem . Cały opis projektu znajduje się tutaj. W tej chwili nie ma zbyt wielu informacji, ale teraz je dodamy.

Zarządzanie zależnościami w Maven

Być może spotkałeś się z wyrażeniem „menedżer zależności”. Maven wie, jak zarządzać zależnościami. Dzięki Maven nie musisz tracić dużo czasu na szukanie w Internecie potrzebnej biblioteki, pobieranie jej, a następnie podłączanie do swojego projektu. Zamiast tego wystarczy dodać wymaganą bibliotekę do listy zależności w Maven.

Zależności są określone w węźle zależności pliku pom.xml

Załóżmy, że potrzebujesz biblioteki Apache Commons IO w swoim projekcie, aby uprościć pracę z plikami. Aby dodać bibliotekę, piszemy pięć linii w pom.xml:

<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Teraz twój plik pom.xml powinien wyglądać tak:

  <?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 (okno dialogowe powinno pojawić się w prawym dolnym rogu). 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 muszą być również zapisane wewnątrz <dependencies>znacznika. Być może zastanawiasz się, jak znaleźć informacje o bibliotece, które musisz wskazać wewnątrz tagu <dependency>. To łatwe. Zawsze należy ustawić trzy parametry: „groupId”, „artifactId” i „version”. Istnieją dwa sposoby określenia tych parametrów:
  1. Na stronie internetowej biblioteki. Jeśli potrzebujemy biblioteki Apache Commons IO, wchodzimy na oficjalną stronę i wybieramy zakładkę „Informacje o zależnościach”. Wszystkie niezbędne informacje są tutaj — możesz je po prostu skopiować i dodać do <dependencies>węzła.

  2. W repozytorium Maven . Wpisz „apache commons io” w pasku wyszukiwania, a zobaczysz wszystkie dostępne wersje biblioteki. Po wybraniu właściwego, po prostu skopiuj następujące elementy:

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

    i dodaj go do pliku pom.xml.

Rodzaje repozytoriów Maven

Warto jeszcze raz wspomnieć o repozytoriach Mavena, bo właściwie mamy ich dwa: zdalne ( centralne) i lokalne (na Twoim komputerze). Wszystkie biblioteki, które dodajesz do swoich projektów, są zapisywane w lokalnym repozytorium. Kiedy Maven dodaje wymaganą zależność do projektu, najpierw sprawdza, czy biblioteka już istnieje w lokalnym repozytorium. Uzyskuje dostęp do zdalnego repozytorium tylko wtedy, gdy nie znajduje biblioteki lokalnie. Jak widzisz, możesz użyć Mavena do dodania zależności, ale to nie wszystko, co potrafi.

Budowanie projektu Java przy użyciu Maven

Dla początkującego ta funkcja może wydawać się bezcelowa. Po co nam to, skoro mamy IDE? Pozwól mi wyjaśnić. Po pierwsze, serwer, na którym musisz zbudować swoją aplikację, może nie mieć ani środowiska programistycznego, ani interfejsu graficznego. Po drugie, w przypadku dużych projektów Maven lepiej buduje projekt. Więc bez zbędnych zwłok, rozważymy proces budowania aplikacji przy użyciu Mavena.

Fazy

Proces budowy aplikacji jest znanym cyklem życia projektu Maven i składa się z faz. Możesz je obejrzeć w IDEA klikając Maven > example > Lifecycle w prawym górnym rogu: Część 4. Podstawy Mavena - 5Jak widać, faz jest 9:
  1. clean — usuwa wszystkie skompilowane pliki z katalogu docelowego (miejsca, w którym zapisywane są gotowe artefakty)
  2. validate — sprawdza, czy dostępne są wszystkie informacje wymagane do zbudowania projektu
  3. kompiluj — kompiluje pliki kodu źródłowego
  4. test — uruchamia testy
  5. package — pakuje skompilowane pliki (w archiwum JAR, WAR itp.)
  6. zweryfikuj — sprawdza, czy spakowany plik jest gotowy
  7. install — umieszcza pakiet w lokalnym repozytorium. Teraz może być używany przez inne projekty jako biblioteka zewnętrzna
  8. site — tworzy dokumentację projektową
  9. wdrożyć — kopiuje zbudowane archiwum do zdalnego repozytorium
Wszystkie fazy są wykonywane sekwencyjnie: na przykład czwarta faza nie może zostać rozpoczęta, dopóki fazy 1-3 nie zostaną zakończone. Fazę można rozpocząć na dwa sposoby:
  • przez linię poleceń:

    pakiet mvn

    Część 4. Podstawy Mavena - 6
  • przy użyciu IntelliJ IDEA:

    Część 4. Podstawy Mavena - 7

    Przed rozpoczęciem fazy pakietu wykonywane są fazy sprawdzania poprawności, kompilacji i testowania. Wyjątkiem jest faza czysta. Dobrym pomysłem jest uruchomienie tej fazy przed każdą kompilacją projektu. Możesz wymienić wiele faz, oddzielając je spacjami:

    czysty pakiet mvn.

Ponadto każda faza ma fazy przed i po: na przykład przed wdrożeniem, po wdrożeniu, przed czyszczeniem, po czyszczeniu itp., ale są one używane dość rzadko. Ponadto każda faza ma cele. Standardowe cele są ustawione domyślnie. Dodatkowe cele są dodawane przez wtyczki Maven. Czasami podczas fazy może być konieczne wykonanie dodatkowych funkcji. Są do tego wtyczki Maven. Listę oficjalnych wtyczek można znaleźć na stronie Maven . Ale powinieneś wiedzieć, że istnieje wiele niestandardowych wtyczek, które można znaleźć na stronach internetowych osób trzecich. I oczywiście, jeśli pojawi się jakaś egzotyczna potrzeba, zawsze możesz sam napisać niestandardową wtyczkę .

Wtyczki

Aby dodać wtyczkę Mavena do projektu, musimy dodać jej opis do pliku pom.xml, używając znaczników <build>i <plugins>, podobnie jak dodaliśmy zależności. Załóżmy na przykład, że potrzebujemy wtyczki, aby sprawdzić, czy używamy najnowszej wersji wszystkich naszych zewnętrznych bibliotek. Po krótkim przeszukiwaniu Internetu możesz znaleźć tę wtyczkę i instrukcje, jak z niej korzystać. Ustawmy identyfikator grupy, identyfikator artefaktu i wersję. Wskażemy, jakie cele wtyczka musi spełniać i na jakim etapie. W naszym przypadku sprawdzanie zależności w bieżącym pom.xml jest ustawione na fazę sprawdzania poprawności. Teraz nasz plik pom.xml wygląda tak:

<?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>
Mogliśmy kontynuować pracę nad naszym projektem. Ale spróbujmy zmienić wersję Apache Commons IO na 2.0 i zbudować projekt. Dostaniemy

[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 generowany przez wtyczkę. Komunikat o błędzie informuje, że używamy wersji 2.0, gdy dostępna jest wersja 2.6. Zasadniczo Maven jest bardzo przydatnym narzędziem. Być może na początku będzie się to wydawać trudne w użyciu, ale ćwicz! Twórz swoje projekty za pomocą Mavena, a po chwili będziesz bardzo zadowolony z efektu końcowego. W tym artykule celowo pominięto wiele szczegółów dotyczących Mavena — skupiliśmy się na najważniejszych. Ale nie ma ograniczeń co do ulepszeń: możesz przeczytać więcej o Maven na jego oficjalnej stronie internetowej . Część 5. Serwlety i Java Servlet API. Pisanie prostej aplikacji webowej Część 6. Kontenery serwletów Część 7. Wprowadzenie do wzorca MVC (Model-View-Controller)
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION