2016-09-28 62 views
2

我們正在努力開發2種gradle這個口味,以加快我們的發展歷程:組裝gradle這個味道與其他口味的編譯依賴

  • 地方風味,編譯我們的圖書館作爲模塊
  • 使用了遠程味道

    productFlavors { 
        local {} 
    
        remote {} 
    } 
    

我已經宣佈的gradle中的兩種口味我國圖書館的最新快照

現在讓我們假設我們的本地和遠程庫都可用作本地模塊(用於調試目的)。 I have created a sample project here.由於每個庫具有還應該是本地或遠程的子庫,我已經加入:

dependencies { 
    localCompile project(path: ':mylibrary', configuration: "localDebug") 
    remoteCompile project(path: ':mylibrary2', configuration: "remoteRelease") 
} 

現在,它變得非常棘手。如果我打電話gradle assembleLocalDebug,我得到這一行:

:mylibrary2:compileRemoteReleaseJavaWithJavac UP-TO-DATE 

在示例應用程序的情況下,它編譯。但在我們的案例中,我們有一個項目,在SNAPSHOTS中找不到最新的功能(因爲它們尚未發佈)。這不應該發生,因爲我們正在本地建設。有什麼辦法可以防止Gradle編譯遠程風味嗎?

回答

0

您想做的事情可能會在最新版本的Gradle中解決。

使用Gradle 3.1,現在可以使用所謂的"composite builds"。假設你有一個庫L,它被部署在一個遠程倉庫中,而一個項目P依賴於L.假設L(比如「libL /」)和P(「projectP」)都在系統上的同一目錄下,你可以通過從projectP運行以下命令來構建「本地」版本:

$ ./gradlew --include-build ../libL build 

此外,複合材料建造are coming in Android Studio

+0

非常感謝。這解決了我的問題。 ;-) –

相關問題