Dependencies 如何在aar库中指定依赖项?

Dependencies 如何在aar库中指定依赖项?,dependencies,android-gradle-plugin,pom.xml,aar,Dependencies,Android Gradle Plugin,Pom.xml,Aar,我创建了一个Android库(称为MyLib),它依赖于maven repo上可用的其他库(如gson、翻新等) MyLib被打包到aar文件中 目标是发布一个aar库,该库可以包含在Android应用程序(称为MyApp)中,而无需再次指定MyLib使用的依赖项 这是MyLib的build.gradle文件 现在,如果我想构建和运行MyApp而不存在依赖性问题,我必须为MyApp使用以下build.gradle(如果我没有将改型和gson指定为deps,则会引发运行时异常,因为deps不可用)

我创建了一个Android库(称为MyLib),它依赖于maven repo上可用的其他库(如gson、翻新等)

MyLib被打包到
aar
文件中

目标是发布一个aar库,该库可以包含在Android应用程序(称为MyApp)中,而无需再次指定MyLib使用的依赖项

这是MyLib的build.gradle文件

现在,如果我想构建和运行MyApp而不存在依赖性问题,我必须为MyApp使用以下build.gradle(如果我没有将改型和gson指定为deps,则会引发运行时异常,因为deps不可用)

我不想在MyApp中指定MyLib中使用的依赖项,我应该如何编写build.gradle文件


aar
发布到maven存储库(本地或远程)并使用
compile(…@aar)将其包括在内时,将禁用可传递依赖项

要为
aar
库启用可传递依赖项,请执行以下操作:

compile ('com.mylib:mylib:1.0.0@aar'){
       transitive=true
}
您可以在此处阅读更多关于此的信息:


这适用于发布到远程或本地maven存储库的
aar
库,在您的情况下,该库甚至不会发布到本地maven存储库。我找不到任何关于它是否适用于您的情况的确切信息,但您应该试一试。

如果MyLib是本地的,您应该使用compile project(“:MyLib”)是的,MyLib是本地的,但打包到aar中。MyLib和MyApp不在同一个项目中。这是两个不同的项目。您始终可以引用项目外部的另一个文件夹引用项目是,但如何执行“编译项目”MyLib@aar“)”?在构建aar库以发布到本地repo时(使用maven和maven publish gradle插件),我现在能够生成一个包含DEP的pom-default.xml文件。但是这个pom文件不包括在aar归档中(它只在构建文件夹中可见,但不包括在最终归档中)。如何将其嵌入aar存档?@BrentM,与问题中提到的一样,如果aar文件存在于Android应用程序的libs目录中:compile(名称:'library_name',分机:'aar'),我知道您没有找到此用例的任何确定信息。但是,你对此有什么更新吗?谢谢
MyApp
 |
 |-- MyLib
 |    |-- Retrofit
 |    |-- gson
 |    |-- ...
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.google.code.gson:gson:2.3.1'
}
dependencies {
    compile('MyLib@aar')

    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.google.code.gson:gson:2.3.1'
}
compile ('com.mylib:mylib:1.0.0@aar'){
       transitive=true
}