2009-03-02 8 views
1

Ich habe ein Java-Projekt, das aus 3 Unterprojekten besteht, die jeweils ein .jar-Artefakt erzeugen (und Unter-Abhängigkeiten zwischen ihnen haben). Außerdem gibt es ein Webprojekt, das von den ersten 3 Projekten abhängt und eine Kriegsdatei generiert. Die Kriegsakte ist mein letztes Artefakt, d. H. Was ich meinen Kunden schicke.Wie implementiere ich Maven Source-Abhängigkeit zwischen Geschwisterprojekten?

Zusätzlich habe ich eine übergeordnete Modul, das alle anderen Projekte umfasst:

<modules> 
    <module>../core</module> 
    <module>../commons</module> 
    <module>../api</module> 
    <module>../web</module> 
</modules> 

I erzeugen Eclipse-Dateien (mvn eclipse: eclipse) und mit Eclipse arbeiten. Das Problem ist, wenn ich eines der Nicht-Web-Projekte modifizieren muss, muss ich es manuell installieren, bevor ich das Web-Projekt in meinem Web-Container bereitstellen. Wie kann ich dafür sorgen, dass das Webprojekt direkt vom Quellcode der anderen abhängt und nicht von der im Repository installierten Version.

Antwort

0

Fügen Sie die drei Module (core, commons und api) in den Eigenschaften Ihrer Webanwendung (rechts im Projekt Explorer im Package Explorer, dann "Eigenschaften") in die "J2EE Module Dependencies" ein (die anderen Module müssen sein) im Eclipse-Arbeitsbereich geöffnet).

+0

Nein, ich möchte Maven die Quellabhängigkeiten bewusst sein. Sonnenfinsternis ist in Ordnung. – flybywire

+0

ok, jetzt bekomme ich was du machen willst. Aber ich glaube nicht, dass Maven das zulassen wird ... – romaintaz

0

Möchten Sie eine Abhängigkeit von den im Repository bereitgestellten Quellkästen hinzufügen?

Wenn dies der Fall ist, fügen Sie den Quellen Klassifikator zu der Abhängigkeit hinzu. Weitere Informationen finden Sie unter this answer.

Wenn nicht, können Sie bitte weiter klären.

0

Ich denke, dein Problem ist, dass du nur das Kriegsprojekt aufbaust. Wenn Sie es über die Befehlszeile erstellen, müssen Sie das übergeordnete Modul erstellen. "mvn package" in dem Verzeichnis, das das übergeordnete Modul enthält, sollte ausreichen. Das bedeutet natürlich, dass Sie jedes Mal alle Pakete erstellen müssen, aber so funktioniert Maven.

0

Die Abhängigkeit: Baum Ziel selbst wird Dinge im Repository eher als der Reaktor nachschlagen. Sie können von mvn Installation dieses Problem umgehen, wie zuvor vorgeschlagen, oder etwas weniger beschwerlich zu tun, die den Reaktor, wie

mvn kompilieren Abhängigkeit ruft: Baum

Arbeiten für mich.

Bearbeiten: D'oh! Posted diese Antwort auf die falsche Frage. Beantworten sollte this