2017-07-11 2 views
2

ich diese StrukturMaven übergeordnete Projekt Automatisierung

  **** child C 

Parent (A)


ohne die Eltern
  **** child B 

Wenn ich versuche zu installieren Kind B haben, wirft Maven mir eine Fehler, ich weiß per Konvention, dass ich den Elternteil in meinem Repository installiert haben sollte, aber gibt es eine Möglichkeit für jemanden, das Kind zu ziehen und während des Installationsvorgangs den P zu installieren nicht automatisch?


@edit Ich werde versuchen, klarer zu sein, ich ein Projekt B, die auf Projekt A abhängt (Projekt A ist Elternteil, gleich wie in Projekt B) I bauen können, möchte in Projekt B ohne die Existenz von A in meinem "Local" (m2> Repository) -Repository, ich möchte in irgendeiner Weise, von B auch installieren A, so dass ein Entwickler, der auf B handeln wird, muss nicht manuell installieren A

+0

Das ist mir unklar. Durch das Verweisen auf das Kind wird das übergeordnete Element automatisch heruntergeladen, wenn es im Repository verfügbar ist. –

+0

Ihre "Struktur" sieht eher unstrukturiert aus. ;) Wen meinst du mit "_someone_" und "_pull_" ist ein SCM-Begriff, kein Maven-Begriff. –

+0

Ich werde versuchen, klarer zu werden, ich habe ein Projekt B, das von Projekt A abhängt (Projekt A ist Elternteil, dasselbe wie in Projekt B) Ich möchte in der Lage sein, Projekt B zu erstellen, ohne die Existenz von A in meinem "Local" (m2> repository) -Repository, möchte ich irgendwie, von B auch A installieren, damit ein Entwickler, der auf B agieren wird, A nicht manuell installieren muss. –

Antwort

2

Lange Rede kurzer Sinn: Nein (. nicht direkt, zumindest)

Sie kein Build eines Projekts von einem anderen laufen kann (aber von einem aggregator/multi-module Projekt oder mit der Maven Invoker Plugin oder ein Groovy oder Ant-Skript oder dergleichen. Aber zu der Zeit würden Sie eines dieser in Ihrem Fall führen die Abhängigkeitsauflösung bereits getan worden wäre, und würde es versäumt haben)

Sie können es anders machen rund wie:.

+- aggregator 
    +- pom.xml: <packaging>pom, <module>parent (A), <module>child B 
    | 
    +- parent (A) 
    | +- pom.xml 
    | 
    +- child B 
    | +- pom.xml: <parent>parent (A), <relativePath>../parent (A), <dependency>parent (A) 
    | 
    +- child C 
     +- pom.xml: <parent>parent (A), <relativePath>../parent (A) 

Gebäude aggregator baut parent (A) und child B in dieser Reihenfolge, da der Maven-Reaktor die Abhängigkeit von child B auf parent (A) erkennt.

+0

Sorry für die Verwirrung, ich bin immer noch sehr jung mit Maven, aber Ihre Antwort war spektakulär, vielen Dank! –

+0

@JeffSilva Siehe [diese Antwort] (https://Stackoverflow.com/a/30953905/1744774) für einige der grundlegenden Konzepte und für Links zu guten Referenzen/Bücher. –