2016-10-27 52 views
1

首先,我是Gradle和Groovy的總noob。 :-)如何在單個gradle內建多個文件系統?

我想從一個基於螞蟻的構建移植到使用Gradle的現有項目。我遇到的問題是我的源代碼存儲在兩個不同的文件系統(都是git倉庫)。我已經設法讓Gradle子項目配置爲處於同一文件系統的模塊工作,但似乎無法將子項目鏈接到兩個不同的文件系統。我需要文件系統'A'(我的應用程序回購)中的項目來依賴文件系統'B'(我的庫回購)中的項目。

有沒有辦法讓Gradle處理跨文件系統邊界的依賴關係?

任何幫助將不勝感激......

回答

1

當你說的文件系統我猜你的意思是他們是兩個不同的文件夾中一次簽出。

有2種方式來實現你想要的:

一是建立項目B和發佈罐子變成了「資源庫」項目A訪問。

repositories { 
    flatDir { 
     dirs 'lib' 
    } 
} 

這是一個小手冊,但它的作用:我從項目B /編譯/林達到了projectA/lib文件夾複製罐子和補充說lib文件夾像這樣在項目中的build文件的存儲實現這一目標訣竅。

另一種方法是使用Gradle的新Composite Build功能。它允許您配置項目A以包含項目B.這樣可以避免手動複製罐子。我自己並沒有使用這種方法,因爲它非常新,所以我不能保證它的工作效果。

+0

我試圖使用Composite Build的東西,但它似乎只適用於以通用目錄爲根的子項目。在我的情況下,我有兩個不同的目錄根(一個用於我的應用程序,另一個用於我的庫代碼)。我不明白的是爲什麼區別?爲什麼我不能告訴Gradle,我的圖書館回購項目中有一個項目,即我的應用程序回購依賴於? – Steve

+0

嗨史蒂夫。我很確定你可以包含任何目錄下的構建。你確定你沒有混淆複合構建和多項目構建?你可以粘貼你的構建文件的內容或你使用的命令行參數嗎? –

+0

我認爲你是對的,我混淆了兩種不同的方案。我將嘗試深入瞭解Composite Build的內容,看看會發生什麼,我注意到可能會導致這種情況對我不起作用的一件事是,文檔聲明在IntelliJ IDEA中不支持組合構建,並且這是我們用來完成工作的IDE。 – Steve

相關問題