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 :

<?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>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:

<?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">

        …

</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:

  <modelVersion>4.0.0</modelVersion>

  <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:

   <dependencies>

       <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 .

maven projekt

Tisztázzunk néhány pontot:

  1. Projekt neve;
  2. Mappa a projekthez;
  3. A projekt nyelve Java;
  4. 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:

Maven projekt 2

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

Maven projekt 3

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".