2014-10-09 107 views
1

在Android Studio項目中,我正在編寫2個共享我自己編碼的庫的Android應用程序。在Android Studio中的不同模塊之間共享項目屬性

Project/ 
- app1/ 
- app2/ 
- mylibrary/ 

所以,在APP1和App2的的build.gradle,我需要包括編譯在MyLibrary的依賴。

dependencies { 
    // Compile shared library 
    compile project(':mylibrary') 
    // Local binary dependency 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
} 

到目前爲止,一切工作正常。

然後,我用兩個不同的腳本構建app1和app2,並在每個建築物中包含一些自定義參數。例如,對於APP1建設腳本將是:

cd app1 

../gradlew assembleRelease -PversionCode=$VERSION_CODE -PversionName=$VERSION_NAME -PWS_URL=$WS_URL 

我可以從propject.property訪問的versionName,和的versionCode參數WS_URL在「APP1」的的build.gradle,但問題在於,我無法從「mylibrary」的build.gradle,我需要分享該信息

有沒有什麼辦法可以在「app1」和「mylibrary」共享這些信息?

在此先感謝!

回答

0

訪問另一個項目的屬性的一種方法是使用project(:name)方法,其中:name是您想要訪問的項目的標識符。你可以在Chapter 57. Multi-project Builds - 57.1.2找到更多關於它的信息。

在特定情況下,你可以通過做一些像「從,或訪問屬性‘APP1 project(:mylibrary).hasProperty('something')project(:mylibrary).property('something')project(:app1)而不是「在MyLibrary」定義’在‘在MyLibrary’你的「APP1」使用性能。

您還可以存儲-PversionCodeext關閉,以使代碼更清潔和更容易使用(例如project(:app1).ext.versionCode

+0

謝謝!這是工作!=) – 2014-10-17 09:14:48