2016-04-29 68 views
9

numaralı çocuk projesinden JAR'ın iki versiyonuna sahiptir. Bu, WAR oluşturan bir temel projem ve JAR'ları oluşturan iki çocuk projesi var. Kök projesi bu şekilde çocuk projesini başvuruyor:Gradle: üretilmiş WAR dosyası,

apply plugin: 'war' 

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

Uygulama2'ye application1 bağlıdır: deposundan biri sadece inşa başka:

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

WAR dosyası application1.jar iki versiyonunu içermektedir.

DÜZENLEME: Application2, JAR olarak uygulama1'e bağımlı olması gerekir çünkü bu, yerleşik Jetty ile Eclipse'de hata ayıklamayı kolaylaştırır: Eclipse, otomatik olarak Jetty sunucu başlatma yapılandırmasının sınıf yoluna application1.jar ekler.

+0

Neden uygulama2 bu yolla uygulamaya1 bağımlı? Yapmamalıydı. –

+0

Bağımlılık nasıl belirtilmelidir? – isobretatel

+3

'derleme projesi (': application1')'. –

cevap

0

Kök projesi ve application2 için farklı olarak application1 projesinde bağımlılık belirttiniz.

Sizin için application2, bazı depolarda bir kütüphaneye bağımlılık olarak yapılmıştır, ancak kök projeniz bir alt projede olduğu gibi buna bağlıdır. Gradle, repodaki bazı kütüphanelerin alt projenin eseri olarak aynı olduğunu belirleyemez. Aynı lib 2 sürümlerini almak için istemiyorsanız

, aynı kütüphaneden onu bağımlı yapmak zorunda: Ya

runtime project(':application1') 

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

veya

olarak, Her iki durumda da aynı alt projeye, daha sonra bazı projelere ve repodaki kütüphaneye bağlı olarak bunu yapmak için önyargılı görünüyor.

+0

Bu benim kullanım durumumda yardımcı olmuyor. Sorgudaki sorularıma bakın. – isobretatel

+0

@isobretatel o zaman bağımlılıklardan birini belirtildiği şekilde bildirmek için tek yol denediniz mi? – Stanislav

+0

>> sağlanan bağımlılıklardan birini bildirin << - Nasıl? Burada https://docs.gradle.org/current/userguide/war_plugin.html#N15B7E SAVAŞ eklentisi 2 additioanl yapılandırmaları sağlayan bir göz atın – isobretatel