1.1 Nagy programok

Már megtanultuk, hogyan kell kis programokat írni, így most megtanuljuk, hogyan írjunk nagyokat. Tudniillik minél nagyobb és összetettebb a program, annál több pénzt fizetnek a fejlesztéséért :) És kezdjük egy kis háttérrel...

A programok méretének növekedésével a fejlesztők két új kihívással néznek szembe:

  • Sok ember dolgozik ugyanazon a programon.
  • Nincs olyan személy, aki ismerné a program teljes kódját.

Nagyon gyakran előfordultak olyan helyzetek, amikor egy programozó hibát javított a program egyik helyén, és egyidejűleg elrontott valamit egy másik helyen. A kiadási dokumentációban még ez a vicc is szerepel:

Változások listája:

  • Javítva a régi hibák :)
  • Újak hozzáadva :(

Aztán két megközelítést találtak ki a probléma megoldására: a technikai és a vezetői.

A technikai megközelítés az volt, hogy a programokat részekre bontották: könyvtárakra és modulokra . Mindegyik ilyen modul egy kis tégla volt, amelyből aztán nagy projekteket építettek. A könyvtárak olyan univerzális összetevők, amelyek különböző programokban használhatók.

A vezetői megközelítés még érdekesebb volt – korlátozták azoknak a számát, akik egy projekten/könyvtáron dolgozhatnak. Tapasztalatilag még egy szabályt is kitaláltak: akkora legyen a csapat, hogy "két pizzával meg lehet etetni " . Ez általában azt jelenti, hogy ha egy projekten több mint 8 ember dolgozik , akkor azt két projektre kell osztani.

A Java fejlesztői közösségben népszerűvé vált, hogy minden alkalomra könyvtárakat írnak, és nyilvánosan elérhetővé teszik azokat. Így a Java programozók nem írhatták újra ugyanazt a kódot (ami gyakran nyers volt és hibákat tartalmazott), hanem kész és bevált megoldásokat használnak .

További ösztönzést jelentett, hogy a Java nyelv nagy népszerűségre tett szert a szerveroldali megoldások írásakor (a háttérben működött). Először is, a szerverszoftvernek magasabb követelményeket támasztanak a megbízhatósággal szemben, és az időtesztelt könyvtárak használata mindig előnyösebb, mint a saját kód írása.

Másodszor, a szerverek gyakorlatilag nem korlátozzák a kód méretét. Egy mobilalkalmazás fejlesztője 10 megabájtba, egy asztali alkalmazás 100 megabájtba próbálja belezsúfolni. Egy Java háttérfejlesztő pedig több tíz gigabájtnyi könyvtárat tud belezsúfolni egy projektbe, és senki nem szól hozzá :)

Ez egyébként nem vicc. Könnyen találkozhat egy több tucat modult és pár száz könyvtárat tartalmazó háttérprojekttel. De rendkívül nehézzé vált az ilyen projektekhez szükséges szkriptek leírása (és megváltoztatása!).

És ekkor megjelent Maven.

1.2 A Maven bemutatása

A Maven egy speciális "keret" a projektépítés-menedzsmenthez. 3 dolgot szabványosít:
  • a projekt leírása;
  • Projektépítő szkriptek;
  • Függőségek a könyvtárak között.

Maven elődje Ant volt , utódja pedig Gradle . De a Maven volt az, aki kidolgozta és tökéletesítette a három felsorolt ​​szabványt, és szabályozta azok interakcióját is. Ő volt az, aki új szintre emelte a Java közösségek munkáját. Nézzük meg részletesebben.

Maven

Technikailag a Maven egy speciális program/szolgáltatás, melynek fő célja az építési projektek folyamatának menedzselése . Egyszerűen letölthető archívumként és kicsomagolható bármely könyvtárba. Ehhez nincs szükség speciális telepítőre.

Nem rendelkezik grafikus felülettel – minden parancsot a konzol segítségével kap . Annak érdekében, hogy még kényelmesebb legyen vele dolgozni, ajánlatos speciális környezeti változókat regisztrálni az operációs rendszerben.

A Mavennek van egy speciális tárolója (könyvtár / mappa), ahol a projektek felépítéséhez használt könyvtárakat tárolja. Ki kell választania néhány mappát a lemezen, és hozzá kell rendelnie tárhelyként.

Egy másik érdekesség a globális Maven repository jelenléte minden könyvtár számára, de erről egy kicsit később fogunk beszélni.

1.3 Töltse le és telepítse a Maven-t

A Mavennek van hivatalos webhelye maven.apache.org . Rengeteg dokumentáció van a projektről, így ha bármilyen nehézsége vagy további kérdése van - jöjjön be, ne féljen.

A letöltési oldalon ( https://maven.apache.org/download.cgi ) is letölthető a maven archívum (apache-maven-3.8.5-bin.zip). A kicsomagolt archívum körülbelül 10 MB-ot fog igénybe venni, bár a helyi maven tároló végül több száz megabájt memóriát igényel.

A Maven Java nyelven íródott, és legalább 7-es verziójú JRE-t, valamint meghatározott JAVA_HOME környezeti változókat igényel.

Csak hozzon létre egy mappát a Maven számára a számítógépén, például d:\devtools , és bontsa ki az archívumot a Maven segítségével. Ennek eredményeként egy d:\devtools\maven\bin mappát kell kapnia , ahol a projekt fő binárisai találhatók.

1.4 Környezeti változók

Ezt követően hozzá kell adnia a kicsomagolt archívum bin mappájának elérési útját a PATH környezeti változóhoz.

A környezeti változó beállításához a Windows 10 rendszerben a Vezérlőpult - Rendszer - Speciális rendszerbeállítások menüpontra kell lépnie. Ezután kattintson a "Környezeti változók" elemre, keresse meg a PATH elemet, és válassza a "Szerkesztés" lehetőséget, majd adja hozzá a d:\devtools\maven\bin elérési utat a sor végéhez. Figyelem, az útvonalnak pontosan a bin mappába kell vezetnie.

Unix alapú operációs rendszeren a környezeti változó egy konzolparanccsal adható hozzá:

export PATH=/opt/apache-maven-3.8.5/bin:$PATH

Ha mindent helyesen csinált, akkor a konzolba be kell írnia a következő parancsot: "mvn -v". Válaszul valami ilyesmit fog látni:

C:\Users\Zapp>mvn -v
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 15:51:28+0200)
Maven home: T:\apache-maven-3.0.5\bin\..
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_65\jre
Default locale: en_US, platform encoding: Cp1251
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"

1.5 Helyi Maven Repository

Beállíthat egy speciális mappát is, ahol a Maven a projektek felépítéséhez használt jar könyvtárakat tárolja. Ezt a mappát helyi maven tárolónak hívják .

Ha nincs megadva ilyen mappa, a Maven létrehozza azt az aktuális felhasználó kezdőkönyvtárában. A könyvtáram: C:\Users\Zapp\.m2

A mappa meglehetősen konkrét neve „.m2”. Bár ez nem ijeszti meg a Linux-felhasználókat, meglehetősen elterjedt megközelítés a különféle "tárolók" és / vagy a szolgáltatási információk bármely más tárolása elnevezésére.

Fontos! Ne helyezze a Maven-t rendszermappákba, mert működés közben írási engedélyekre lesz szüksége ezekbe a mappákba, ami egészségtelenül érdekli a víruskeresőt vagy az operációs rendszert.

A 3.5-ös verzió előtti Mavennek szüksége volt egy M2_HOME nevű környezeti változóra, de erre már nincs szükség.

A Maven konfigurálásáról a következő linken olvashat bővebben: https://maven.apache.org/configure.html