Hogyan használhatom a maven-et olyan könyvtárakhoz, amelyek nem a mavenben vannak?
Ebben a cikkben megmutatom, hogyan csatlakoztasson egy olyan könyvtárat, amely nem rendelkezik alapértelmezettséggel a maven-ben, és hogyan csatlakozhat egy másik könyvtárhoz, amelynek forrásai régóta elveszettek.
Azt is leírom, hogyan készítsünk egy maven projektet, amely egy könyvtár részét képező tárgyat hoz létre, és hogyan kapcsolja össze ezt a könyvtárat egy másik maven projekthez.
A korábbi cikkemben azt mondták, hogy a maven maga a pom.xml-ben feltüntetett függőségeket letölti. De mi fog történni, ha nem talál függőséget? Ebben az esetben a maven azt fogja mondani, hogy a függõséget nem észleli, és hibát okoz a megépítés folyamatában. Mi a teendő ebben az esetben?
Ez a kérdés valójában több kérdésre tagolódik, amelyek mindegyikét külön kell kezelni. A megoldás kiválasztását az a függvény határozza meg, ahol ez a függőség.
A függőség az interneten egy helyen lehet, amelyről a maven nem tudja. Ez is lehet egy jar fájl a kezedben, és végül forráskód formájában, amelyet maven projektként terveztek.
E három ügyről beszélünk.
De először meg kell röviden tisztázni egy kérdést.
Ahol a maven a könyvtárakat lendíti
Mi van akkor, ha a könyvtár alapértelmezés szerint nem létezik a távoli tárhelyen, de egy másik távoli tárolóban van?
Az első és valószínűleg a leggyakoribb probléma akkor fordul elő, ha nincs ilyen könyvtár az alapértelmezett adattárban, vagy ha a készletből a gépen található tároló nem érhető el, például biztonsági okokból.
Hogyan adhat meg egy mavenet egy projekthez, ahol további tárat kereshet
Ezután csatlakoztattuk a tavaszi projekttárat, amelyben megtalálhatóak a könyvtárcsalád legújabb verziói. Így néz ki belülről a pom.xml
Most maven, amikor alapértelmezés szerint nem találja a függőséget a repositoryban, vagy azt találja, hogy nem áll rendelkezésre - nem pánikol, hanem keres egy könyvtárat egy másik repositóriumban, és ha minden megy a terv szerint, megtalálja ott.
De előfordul, hogy nincsenek könyvtárak a tárban. Például, ha ez az illesztőprogram az MSSQL-hez, vagy ha egy saját könyvtár, amelyet nemrég vásároltál sok pénzt.
Hogyan csatlakozhat egy rejtvénytár nélküli könyvtárhoz?
Számos módon csatlakoztathat ilyen könyvtárat. Például ha rendelkezik saját tárházával a helyi hálózaton, akkor (és néha még szükség is van), helyezze be a könyvtárat, és így csökkentse a feladatot az előzőhöz.
De ha lehetséges, akkor jobb, ha ilyen könyvtárat helyez a projektbe, és tárolja közvetlenül a verziókezelő rendszerben. Ezután a könyvtár mindig elérhető lesz a programra, és bármelyik gépen, és a könyvtár átmásolásának lépése a tárolóba nem szerepelhet a kézikönyvben.
Az ilyen esetek kezelésére a maven rendszeres mechanizmussal is rendelkezik. Most megtudtuk, hogyan adhatjuk meg az alapértelmezésen kívül egy távoli tárhelyet. Tehát nem kell távoli adattárat használni. Létrehozhatod a helyi fájlrendszeren tárolt adattárat, beillesztheted a könyvtárat, és utasíthatod a mavenet, hogy ott is keresse a függőségeket.
A helyi adattár létrehozása
Ehhez a fentiekhez hasonlóan a maven rendelkezik személyzeti eszközzel.
Tegyük fel, hogy egy olyan könyvtárunk van, amely egy hello-world-library-1.0-SNAPSHOT.jar könyvtárban található. A könyvtárról tudjuk, hogy benne van egy HelloWorld osztály, amely magában foglalja a statikus módszert, írja be a konzolt, mivel könnyű kitalálni, Hello World.
Létrehozunk egy lib könyvtárat a projektkönyvtárban, amelyben további tárhelyünk található, és elhelyezzük a könyvtárat. Ehhez elegendő a következő parancs végrehajtása a projektkönyvtárban.
Ha Windows operációs rendszert használ, cserélje ki a ^ -ot, vagyis írja le
Vagy egyszerűen eltávolíthat és írhat egy parancsot egy sorban.
Figyelj rá, mint bármely más műtárgyra, a könyvtárhoz szükségünk van a groupId, artectId és verzió létrehozására. Miután összekapcsoljuk a függõséget, akkor pontosítjuk a pom.xml-re.
A parancsnoki könyvtár belsejében van egy teljes tárhely, amelyhez elegendő a maven helymeghatározása, ahol található. A frissen létrehozott adattár könyvtárstruktúrájában közvetlenül megtalálható minden információ arról, hogy mely könyvtárak találhatók. Az adattár későbbi használatához például más gépeken a telepítési fájl parancsát nem kell végrehajtani.
Annak érdekében, hogy tudni lehessen a projektnek, hogy a repository létezik, és megmutatja, hol van, akkor már leírták az utat, bár a helyi adattárház módosításával.
Ügyeljen az ötödik vonalra
Azt mondja, hogy a projektkönyvtárban kell keresni a repository-ot, amelyet a beépített változó maven project.basedir jelez.
A könyvtárat használó osztály rendkívül egyszerű, de a kód sorrendjében.
Továbbra is hozzá kell adni a pom.xml függõséget, és összegyûjtheti a projektet.
A lib könyvtárnak zakomitit kell, és a könyvtár mindenkor elérhető lesz a projekt számára.
Azonban egy szabályt fel kell jegyezni.
Frissítse a könyvtár verziószámát a helyi adattárban, amikor megváltoztatja a jar fájlt
A Maven külső tárolóként kezeli a tárolókat, ezért ha nem változtatja meg a verziószámot, akkor a maven nem használja a könyvtár verzióját a lib könyvtárból, hanem az, amelyet a helyi gépen tárolt. Ebben a konkrét esetben ez nem játszhat szerepet a SNAPSHOT utótag miatt, de tudnia kell erről.
Van egy másik gyakori forgatókönyv. Van saját könyvtárod, amelyet összeépítesz a maven-el, és csatlakozol egy másik maven projekthez.
Hogyan készítsünk java könyvtárat?
Egy könyvtár létrehozásához elegendő egy osztályt írni a módosítóval. És akkor használhatja ezt az osztályt a kódban, amelyhez a könyvtár csatlakozik.
Itt például, például egy osztály.
Most olyan maven-projektet kell készítenie, amely összeállítja ezt az osztályt tartalmazó könyvtárat.
Mint emlékszünk, a maven szempontjából a könyvtár csak egy tárgy, ezért a Pomel triviálisnak tűnik.
Tehát van statikus módszerrel rendelkező osztályunk, van egy leírása a maven tárgyáról. Ez a kód csak akkor fordítható le, ha egy könyvtárat, vagyis egy jar fájlt hoz létre.
Csak írj a konzolba:
Ezután egy névvel ellátott fájl jelenik meg a célkönyvtárban.
Hogyan lehet újonnan létrehozott könyvtárat csatlakoztatni a maven projekthez?
Annak érdekében, hogy a könyvtár kapcsolódhat egy másik projekthez, a csomag helyett telepítenie kell a telepítést.
Ezt a könyvtári kód minden egyes módosítása után és minden olyan számítógépen meg kell csinálni, amelyen a könyvtárat használni szeretnénk.
Most készíthet egy új projektet, amely a könyvtárat fogja használni.
A projektben egy osztály fogja használni a statikus módszert a könyvtárból a Hello világnak. Már láttuk ezt az osztályt.
Nézzük még egyszer:
Nem rosszabb, mint az előző változat!
Mi van akkor, ha a könyvtár egy másik könyvtárat használ?
A kérdés, úgy tűnik, hülyeség, de abban az esetben, kísérletet fogunk végezni.
Vegyünk egy könyvtárat nem üres függőséggel.
és írj egy kódot
Most összeszedjük
Menjünk át a könyvtárba a projektünk segítségével, amely ezt a könyvtárat használja, és megpróbálja összegyűjteni és futtatni.
Hogy működik
Szigorúan szólva tudod, hogy a folyamat belsejében van, nem feltétlenül, de mégis nagyon hasznos.
Az mvn install parancs összegyűjti a könyvtárat, majd alapértelmezés szerint a helyi adattárba helyezi. Vagyis ugyanazon a helyen, ahol minden olyan könyvtár, amelyre valaha csatlakozott a maven projektekhez, kivéve, természetesen, azok, amelyek a helyi raktárban vannak, amit Ön személyesen készített.
Ezután egy projekt létrehozása során, amely ezt a könyvtárat használja, a maven keresni fogja a helyi adattárban, megtalálja és összekapcsolja azt.
- A Maven a távoli alapértelmezett tárhely könyvtárait keresi.
- Az alapértelmezett adattárban nem szereplő könyvtár csatlakoztatásához további távoli adattárakat adhat meg, majd a maven könyvtárakat is keres.
- Ha nincs távoli tárolóban könyvtár, létrehozhat egy helyi adattárat a natív maven-mechanizmus használatával és hozzáadhatja a pom.xml-hez.
- A projekt forráskódjában lévő repository frissítése során mindig módosítania kell a könyvtár verzióját, különben zavaros problémákat okozhat.
- Ha van egy maven projekt, akkor készíthetsz egy könyvtárat az mvn csomag parancs használatával.
- Az mvn telepítési parancs segítségével a könyvtárat alapértelmezés szerint a helyi adattárba telepítheti.
- Ha egy könyvtárat szeretne használni egy másik projektben, elegendő megadni a függvényt a pom.xml fájlban.