2016-04-29 48 views
9

JAR的兩個版本我有一個建立WAR根項目,並建立JAR的兩個子工程。根項目引用的子項目這樣:搖籃:生產WAR文件有從子項目

apply plugin: 'war' 

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

應用2取決於應用1:

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

WAR文件包括application1.jar的兩個版本:一個版本庫中,另一個剛剛建成。

編輯:應用2必須依賴於應用程序1作爲一個JAR,因爲在Eclipse簡化調試嵌入式碼頭:Eclipse將自動添加到application1.jar Jetty服務器啓動配置的類路徑。

+0

爲什麼application2依賴於application1這種方式?它不應該。 –

+0

如何指定依賴關係? – isobretatel

+3

'編譯項目(':application1')'。 –

回答

0

您已經爲根項目和application2以不同方式指定了對application1項目的依賴關係。

爲了您application2,被製成依賴於一些倉庫內的圖書館,但你的根項目依賴於它作爲一個子項目。 Gradle無法確定,回購庫中的某些庫與子項目的工件相同。

如果你不想讓兩個版本相同的lib,你必須使它懸掛在同一庫:無論是作爲

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

runtime project(':application1') 

無論如何,它似乎是可以預見的,在兩種情況下取​​決於相同的子項目,而不是在某個項目和回購庫中。

+0

這並不能幫助我的用例。看到我的編輯問題。 – isobretatel

+0

@isobretatel那麼唯一的辦法就是聲明所提供的依賴項之一,你試過了嗎? – Stanislav

+0

>>聲明提供的依賴關係之一<< - 如何? – isobretatel