Gradle编译依赖项与/ out“@aar”有什么区别?

时间:2017-09-05 09:46:28

标签: android gradle android-gradle

我的Android项目中有gradle依赖项配置:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])   
    compile 'com.appsflyer:af-android-sdk:4.8.0@aar'
    provided 'com.segment.analytics.android:analytics:4.+'
}

但是我可以在没有compile 'com.appsflyer:af-android-sdk:4.8.0@aar'

的情况下写@aar
compile 'com.appsflyer:af-android-sdk:4.8.0

从Appsflyer文档中他们告诉我们使用@aar,但由于我是新手,因此{/ 1}}后缀是否有任何区别?因为它看起来像两种情况都有效

2 个答案:

答案 0 :(得分:1)

使用@aar表示法表示您只想下载aar工件,无依赖项
您可以查看documentation的这一部分:
查看Artifact only notation部分:

  

仅工件表示法创建模块依赖项,该依赖项仅下载具有指定扩展名的工件文件。 忽略现有模块描述符 ..

如果要下载依赖项,请使用@aar表示法,添加transitive=true

答案 1 :(得分:0)

AAR是Android库文件

请参阅docs

' @ aar'表示gradle应该下载AAR文件而不是JAR文件。在这种情况下,我的猜测是该库的提供者将请求转发给AAR文件,无论是' @ aar'是否添加。