2016-04-29 19 views
9

Ho un progetto root che genera WAR e due progetti figlio che creano JAR. Il progetto principale fa riferimento al progetto figlio in questo modo:Gradle: il file WAR prodotto ha due versioni di JAR dal progetto figlio

apply plugin: 'war' 

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

application2 dipende application1:

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

Il file WAR include due versioni di application1.jar: uno dal repository, un altro appena costruito.

MODIFICA: Applicazione2 deve dipendere dall'applicazione1 come JAR perché ciò semplifica il debug in Eclipse con Jetty incorporato: Eclipse aggiunge automaticamente application1.jar al classpath della configurazione di avvio del server Jetty.

+0

Perché l'applicazione2 dipende dall'applicazione1 in questo modo? Non dovrebbe. –

+0

Come deve essere specificata la dipendenza? – isobretatel

+3

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

risposta

0

È stata specificata la dipendenza dal progetto application1 in modo diverso per il progetto radice e per application2.

Per il tuo application2 è stato creato come dipendenza da una libreria all'interno di alcuni repository, ma il progetto radice dipende da esso come in un sottoprogetto. Gradle non può determinare che alcune librerie nel repository siano le stesse, come artefatto del sottoprogetto.

Se non si desidera ottenere 2 versioni dello stesso lib, bisogna renderlo dipendente dalla stessa libreria: sia come

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

o come

runtime project(':application1') 

In ogni caso, sembra essere preferibile, per farlo dipendere dallo stesso sottoprogetto in entrambi i casi, piuttosto che su qualche progetto e sulla libreria in repo.

+0

Ciò non aiuta il mio caso d'uso. Vedi la mia modifica nella domanda. – isobretatel

+0

@isobretatel quindi l'unico modo è dichiarare una delle dipendenze come fornite, l'hai provata? – Stanislav

+0

>> dichiara una delle dipendenze come previsto << - Come? – isobretatel

Problemi correlati