Java >> Java-zelfstudie >  >> Tag >> maven

Maven-project toevoegen als afhankelijkheid in maven-project

Ik heb twee Maven-projecten, beide gemaakt op basis van de standaard Maven-structuur in Eclipse.

Project A is afhankelijk van Project B. Om klassen van A in B te gebruiken, kan ik B toevoegen aan het bouwpad van A.

Hoe kan ik hetzelfde effect bereiken met Maven?

Momenteel heb ik beide projecten op mijn bestandssysteem, maar ik zou deze afhankelijkheid op een zo gelijk mogelijke manier willen toevoegen aan, bijvoorbeeld, het toevoegen van GSON vanuit een externe repository (Fig. 1), want dat is hoe ik zou in de toekomst mijn eigen repositories willen beheren.

Momenteel, wanneer ik dit probeer:

<dependency>
    <groupId>vision.voltsofdoom</groupId>
    <artifactId>voltsofdoom</artifactId>
    <version>0.0.1</version>
    <type>pom</type>
</dependency>

... en alle andere projecten van het bouwpad verwijdert, kan Eclipse geen van mijn importen oplossen (alles werkt goed als ik Project B (voltsofdoom) toevoeg aan het bouwpad van A (casketofazamgarath).

B's (voltsofdoom) basispom ziet er zo uit.

    <groupId>vision.voltsofdoom</groupId>
    <artifactId>voltsofdoom</artifactId>
    <version>0.0.1</version>
    <packaging>pom</packaging>

B (voltsofdoom) verschijnt niet op het tabblad "Lokale opslagplaats" in de weergave "Maven-opslagplaatsen", maar verschijnt in plaats daarvan in "Werkruimteprojecten".

Figuur 1 (GSON toevoegen):

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.3.1</version>
</dependency>

==

Antwoord:Volg het juiste gemarkeerde antwoord. Het gewijzigde fragment is:

<dependency>
    <groupId>vision.voltsofdoom</groupId>
    <artifactId>voltsofdoom</artifactId>
    <version>0.0.1</version>
</dependency>

Antwoord

U kunt de maven clean install . uitvoeren doel op het project dat niet afhankelijk is van de andere (d.w.z. de "afhankelijkheid"), die uw project zal "exporteren" naar uw lokale .m2-directory in uw gebruikersdirectory.

Daarna zou u er toegang toe moeten hebben vanuit het afhankelijke project met het codefragment dat u in uw vraag noemde (hoewel ik niet helemaal zeker weet wat de <type> tag doet).


Java-tag