在Android Studio中的不同模块之间共享项目属性

时间:2014-10-09 08:12:37

标签: android android-studio android-gradle build.gradle

在Android工作室项目中,我正在编写2个共享我自己编码的库的Android应用程序。

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'])  
}

到目前为止,一切正常。

然后,我正在使用2个不同的脚本构建app1和app2,并且我在每个建筑物中包含一些自定义参数。例如,app1的构建脚本将是:

cd app1

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

我可以从" app1"的build.gradle中的propject.property访问versionName,versionCode和WS_URL参数,但问题在于我无法从" mylibrary&的build.gradle中访问#34;我需要分享这些信息

有没有办法在" app1"中分享这些信息?和" mylibrary"?

提前致谢!

1 个答案:

答案 0 :(得分:0)

访问另一个项目属性的一种方法是使用project(:name)方法,其中:name是您要访问的项目的标识符。您可以在Chapter 57. Multi-project Builds - 57.1.2中找到有关它的更多信息。

在您的特定情况下,您可以通过执行project(:mylibrary).hasProperty('something')project(:mylibrary).property('something')'之类的操作,让'app1'使用'mylibrary'中定义的属性,或者从'app1'中访问属性mylibrary'通过做project(:app1)代替。

您还可以将-PversionCode存储在ext封闭内,以使代码更清晰,更易于使用(例如project(:app1).ext.versionCode