Projekt Leírás Objektummodell
Az egyik dolog, amit a Maven először szabványosított, a projekt leírása volt. A Maven előtt minden IDE-nek volt saját projektfájlja, amely információkat tárolt a projektről és annak összeállításáról (és gyakran bináris formában).
A Maven egy XML-alapú, univerzális, nyílt szabvánnyal állt elő, amely különféle címkék segítségével leírja, mi egy projekt, hogyan kell felépíteni, és milyen függőségei vannak. A projekt leírása egyetlen fájlban található, általában pom.xml néven .
Példa pom.xml fájlra :
<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>példa</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>commons-io </groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
</project>
Ebben a példában három dolog van írva:
- A maven projektszabvány verziójára vonatkozó információ kék színű.
- Magára a projektre vonatkozó információk pirossal vannak jelölve.
- A használt könyvtárakkal kapcsolatos információk zöld színűek.
Nézzük meg közelebbről a pom reszelő eszközt.
Maven projekt felépítése
És rögtön az a kérdés: figyeltél az utolsó példa furcsaságára? Magáról a projekt kódról nem tartalmaz információt! Nincs szó arról, hogy hol tárolják a java fájlokat, erőforrásokat, tulajdonságfájlokat, html-t, build scripteket és hasonlókat.
A válasz pedig egyszerű – a Maven szabványosította a projekt kialakítását. Számos lehetőség van a kódok projekten belüli rendszerezésére, és a leggyakoribb:

A szerkezet kissé szokatlan a standard IDEA projektek után, de ehhez univerzális. Az életed során tapasztalt projektek 90%-a ilyen mappastruktúrával rendelkezik .
Ha létrehoz egy Maven projektet (IDEA használatával vagy a konzol használatával), akkor az a megadott formában fog megjelenni. Lássuk, hogyan működik itt mindez.
Az src mappa , gondoltad, tartalmazza a projekt forráskódját. Két almappája van: main és test .
A /src/main/java mappa a projektben lévő összes Java osztály gyökérje. Ha van egy com.codegym.Cat osztályod, akkor az a /src/main/java /com/codegym /Cat.java mappában lesz . Ha vannak szöveges vagy bináris erőforrások, akkor azokat a /src/main/resources mappában kell tárolni .
A /src/test mappa felépítése hasonló a /src/main mappa szerkezetéhez , de tartalmazza a teszteket és azok erőforrásait. A Maven maga tudja, hogyan kell lefuttatni a szükséges teszteket egy projekt felépítése során, de erről külön előadásban fogunk beszélni.
A projektben van egy /target mappa is , ahová a Maven elmenti a projektet a felépítés után. Mivel a nagy projektek gyakran nem triviális build szkripteket tartalmaznak, ebben a mappában semmi sem tárolódik.
A /target mappa második célja a közbenső összeállítási eredmények gyorsítótárazása. Egy nagy projekt építésénél a Maven csak azt a részét tudja újjáépíteni, amelyik megváltozott, így többszörösére gyorsítja az építési időt.
Nos, cseresznye a tortán – a projekt gyökere a pom.xml fájl. Tartalmaz minden szükséges információt a projektről, amelyeket az alábbiakban tárgyalunk.
Eszköz pom.xml
Először is, a pom fájl xml, tehát tartalmazza a szabványos fejléceket és névtereket. Ez az egész a tisztán XML szabványról szól, ezért nem beszélünk róla részletesen. Ezt jelenti:
<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">
…
</project>
Ezenkívül általában a <project> címke első sora a pom-file szabvány verziójának leírása. Szinte mindig 4.0. Ez sem érdekel minket.
A minket érdeklő első sorok így néznek ki:
<groupId>com.sample.app</groupId>
<artifactId>új alkalmazás</artifactId>
<version>1.0-SNAPSHOT</version>
Hogy ne értsük még egyszer azt, amit a Maven szabványban leírunk (program, projekt, modul, könyvtár stb.), ezt az egészet artifact szónak nevezzük . Amit nem lehet megtagadni a Maven alkotóitól, az a szabványosítás szeretete.
A látható három címke jelentése:
- groupId - a csomag, amelyhez az alkalmazás tartozik, a domain név hozzáadásával;
- artifactId – egyedi karakterlánc-kulcs (projektazonosító);
- verzió - a projekt verziója.
Ez a három paraméter elegendő bármely műtermék egyértelmű leírásához .
Továbbá a projekt leírása után általában egy lista található a projekt által használt műtermékekről (könyvtárakról). Valahogy így néz ki:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
Ebben a példában a commons-io csomag 2.6-os verziójának commons-io könyvtárát adjuk hozzá projektünkhöz.
Az összeállítás során a Maven megkeres egy ilyen könyvtárat a globális tárolójában, és hozzáadja a projekthez. És mellesleg nem csak Maven képes erre.
Hogyan működik az IDEA a Mavennel
Az Intellij IDEA remekül dolgozik a Mavennel. Tudja, hogyan kell ilyen projekteket megnyitni, saját maga létrehozni, különféle build szkripteket futtatni, és tökéletesen megérti a benne foglalt könyvtárakat.
Egy ideig még saját beépített Maven-nel is rendelkezik, de ezt továbbra is saját kezűleg kell telepíteni és konfigurálni, így az IDEA ezen funkciójáról korábban nem esett szó. Elméletileg az IDEA-nak lehet konfliktusa két Maven között, ezért jó, ha tudod, hogy kettő van.
Új Maven projekt létrehozása az IDEA-ban:
Kattintson a Fájlok > Új projekt menüre. Válassza ki a bal oldali Új projekt menüpontot .

Tisztázzunk néhány pontot:
- Projekt neve;
- Mappa a projekthez;
- A projekt nyelve Java;
- A projekt típusa Maven.
Az alján található Speciális beállítások részben az IDEA felkéri, hogy adja meg új projektünk csoportazonosítóját, artefactID-jét és verzióját. Ezek az adatok később bármikor könnyen módosíthatók. Válasszon a javasoltak közül, vagy írja be a sajátját:

Ezután szabványosan hozzon létre egy projektet a kívánt helyen. Ennek eredményeként a következő szerkezetet látjuk:

Az osztályokat, csomagokat a java mappában kell létrehozni, erről már volt szó. És szerintem könnyen kezelheted. Készen állunk a továbblépésre, de térjünk vissza egy kicsit, egy fontos kérdéshez, amit kicsit "kihagytunk".
GO TO FULL VERSION