So geben Sie ein Projekt mit mehreren Modulen mit nicht freigegebenen Abhängigkeiten frei

9

Ich habe ein Multi-Modul-Projekt (flache Struktur) wie folgt

%Vor%

Mit dem Aggregator kann ich moduleA und moduleB gleichzeitig erstellen, installieren und bereitstellen und scheint das zu tun, was ich erwarte.

Wenn ich versuche, eine Version von Version 1.1 zu veröffentlichen, kann ich das nicht, weil moduleA von modulB (1.1-SNAPSHOT) abhängt, was zu dem folgenden Fehler führt: "Projekt kann wegen nicht freigegebener Abhängigkeiten nicht freigegeben werden"

Ich dachte, dass die Verwendung des Aggregators mir erlauben würde, eine "synchronisierte" Version von moduleA und moduleB zu machen, wobei moduleA automatisch aktualisiert wird, um von moduleB (1.1) abhängig zu sein. Was wäre der richtige Weg, um dies zu erreichen?

Danke

    
mavenN00b 08.09.2010, 08:52
quelle

2 Antworten

2
  

Wie man ein Multi-Modul-Projekt mit nicht freigegebenen Abhängigkeiten freigibt

Um diese Frage strikt zu beantworten, ist dies zumindest mit dem Maven Release Plugin nicht möglich. Und wenn Sie das Maven Release Plugin nicht benutzen und das Release manuell machen, sollten Sie das nicht tun.

Grund: der Build eines Releases sollte wiederholbar sein, sollte er später aus seinen Quellen aufgebaut werden, sollte das genau den gleichen Effekt ergeben. Einige SNAPSHOT-Abhängigkeiten in einigen freigegebenen POMs haben dieses Ziel vollständig zunichte gemacht. Deshalb erzwingt das Maven Release Plugin dies.

  

Ich dachte, dass die Verwendung des Aggregators mir erlauben würde, eine "synchronisierte" Version von moduleA und moduleB zu machen, wobei moduleA automatisch aktualisiert wird, um von moduleB (1.1) abhängig zu sein. Was wäre der richtige Weg, um dies zu erreichen?

Sind die Versionen fest codiert? Wenn dies der Fall ist, könnte dies das Problem sein.

  • moduleB und moduleA sollten keine Version deklarieren, sie erben sie vom übergeordneten POM

  • moduleA sollte die integrierten Eigenschaften verwenden, um seine Abhängigkeit von B zu deklarieren

    %Vor%
Pascal Thivent 08.09.2010 21:05
quelle
0

Ich stieß auf ein ähnliches Problem und die erste Antwort in Dieser Thread hat mir geholfen (siehe auch den Beispielcode, der verlinkt ist)

Die Antwort besteht im Grunde darin, alle Module der Abhängigkeitsverwaltung des Eltern-POM hinzuzufügen und dann alle Versionsinformationen aus den "Inter-Modul" -Abhängigkeiten in den Modulen zu entfernen.

z.B.

Elternpom:

%Vor%

Modul A:

%Vor%     
Bertolt 17.02.2013 11:22
quelle

Tags und Links