2016-04-29 6 views
9

Ich habe ein Root-Projekt, das WAR erstellt, und zwei untergeordnete Projekte, die JARs erstellen. Das Root-Projekt verweist auf das Kind Projekt auf diese Weise:Gradle: produzierte WAR-Datei hat zwei Versionen von JAR aus untergeordneten Projekt

apply plugin: 'war' 

jar.enabled = false 
war { 
    dependencies { 
     runtime project(':application1') 
     runtime project(':application2') 
    } 
} 

Application2 hängt von application1:

dependencies { 
    compile '...:application1:1.+' 
} 

Die WAR-Datei enthält zwei Versionen von application1.jar: ein aus dem Repository, ein anderer gerade gebaut.

BEARBEITEN: Application2 muss als JAR von application1 abhängig sein, da dies das Debugging in Eclipse mit integriertem Jetty vereinfacht: Eclipse fügt application1.jar automatisch zum Klassenpfad der Jetty-Server-Startkonfiguration hinzu.

+0

Warum hängt application2 so von application1 ab? Es sollte nicht. –

+0

Wie sollte die Abhängigkeit angegeben werden? – isobretatel

+3

'compile project (': application1')'. –

Antwort

0

Sie haben die Abhängigkeit application1 für das Stammprojekt und für die application2 unterschiedlich angegeben.

Für Ihre application2 wurde es als Abhängigkeit von einer Bibliothek in einem Repository erstellt, aber Ihr Stammprojekt hängt davon ab wie in einem Unterprojekt. Gradle kann nicht bestimmen, dass eine Bibliothek im Repo die gleiche ist wie das Artefakt eines Unterprojekts.

Wenn Sie nicht zwei Versionen des gleichen lib erhalten möchten, müssen Sie es aus derselben Bibliothek abhängig machen: entweder als

compile '...:application1:1.+' 

oder als

runtime project(':application1') 

Wie auch immer, es scheint vorzugswürdig zu sein, es in beiden Fällen auf das gleiche Teilprojekt zu beziehen, eher auf ein Projekt und auf die Bibliothek im Repo.

+0

Das hilft meinem Anwendungsfall nicht. Siehe meine Bearbeitung in der Frage. – isobretatel

+0

@isobretatel dann ist der einzige Weg, eine der Abhängigkeiten als bereitgestellt zu deklarieren, haben Sie es versucht? – Stanislav

+0

>> eine der Abhängigkeiten wie angegeben erklären << - Wie? Nehmen Sie – isobretatel

Verwandte Themen