【发布时间】:2015-08-25 07:33:41
【问题描述】:
我创建了一个 Android 库(称为 MyLib),它依赖于 maven repo 上可用的其他库(如 gson、retrofit 等。 )。
MyLib
|
|-- Retrofit
|-- Gson
|-- ...
MyLib 被打包到一个aar 文件中。
目标是发布一个 aar 库,该库可以包含在 Android 应用程序(称为 MyApp)中,而无需再次指定 MyLib 使用的依赖项。
MyApp
|
|-- MyLib
| |-- Retrofit
| |-- gson
| |-- ...
这是我的 build.gradle 文件,用于 MyLib
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.google.code.gson:gson:2.3.1'
}
现在,如果我想构建和运行 MyApp 而没有依赖问题,我必须为 MyApp 使用以下 build.gradle(如果我没有指定 retrofit 和 gson 作为 deps,会抛出运行时异常,因为这些 deps 不可用)。
dependencies {
compile('MyLib@aar')
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.google.code.gson:gson:2.3.1'
}
我不想在 MyApp 中指定 MyLib 中使用的依赖项,我应该如何编写 build.gradle 文件?
提前致谢
【问题讨论】:
-
如果MyLib是本地的,你应该使用compile project(':MyLib')
-
是的,MyLib 是本地的,但打包成 aar。 MyLib 和 MyApp 不在同一个项目中。这是两个不同的项目。
-
您可以随时参考项目之外的另一个文件夹
-
指一个项目是的,但是如何执行“compile projet('MyLib@aar')”?
标签: dependencies android-gradle-plugin pom.xml aar