【问题标题】:what's the meaning of @aar with transitive = true@aar with transitive = true 是什么意思
【发布时间】:2017-07-04 09:38:45
【问题描述】:

我仅以crashlytics 为例。

有什么区别

    compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') { transitive = true; }

    compile 'com.crashlytics.sdk.android:crashlytics:2.6.8'

【问题讨论】:

  • 我读到了,但“现有模块描述符被忽略”不清楚。在 crashlytics 的情况下,哪些模块描述符将被忽略?
  • 表示只下载aar神器,不下载依赖。
  • no with "transitive = true" 你下载依赖项

标签: android gradle android-gradle-plugin crashlytics crashlytics-android


【解决方案1】:

如果您在 Gradle 依赖项中使用 ...@artifacttype 表示法,则意味着“只给我这个工件,没有传递依赖项”。通过另外设置transitive = true,尽管事实如此,您仍会获取传递依赖项。

第一个版本获得带有依赖关系的aar,据我所知,第二个版本总是获得jar(如果存在),否则只有依赖关系。添加configurations.compile.each { println it } 以输出配置中的实际文件,您应该会看到差异。

crashlytics的情况下没有区别:

compile 'com.crashlytics.sdk.android:crashlytics:2.6.8'
/home/xan/.gradle/caches/modules-2/files-2.1/com.crashlytics.sdk.android/crashlytics/2.6.8/2f667ae0609d82045cbe602d38df3fbf2c9528dd/crashlytics-2.6.8.aar
/home/xan/.gradle/caches/modules-2/files-2.1/com.crashlytics.sdk.android/beta/1.2.5/f73d30657bb44ecb79d434a4ae3fb7d887371d84/beta-1.2.5.aar
/home/xan/.gradle/caches/modules-2/files-2.1/io.fabric.sdk.android/fabric/1.3.17/85fc9aae9009f6fb2beaf23fa0ce1ae13f124413/fabric-1.3.17.aar
/home/xan/.gradle/caches/modules-2/files-2.1/com.crashlytics.sdk.android/crashlytics-core/2.3.17/f3bed4c297be8d30dc5aa7f18b06dff75435bde4/crashlytics-core-2.3.17.aar
/home/xan/.gradle/caches/modules-2/files-2.1/com.crashlytics.sdk.android/answers/1.3.13/83dc1dd439c7da04ce9705f18037fe7551ae06bc/answers-1.3.13.aar

compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') { transitive = true; }
/home/xan/.gradle/caches/modules-2/files-2.1/com.crashlytics.sdk.android/crashlytics/2.6.8/2f667ae0609d82045cbe602d38df3fbf2c9528dd/crashlytics-2.6.8.aar
/home/xan/.gradle/caches/modules-2/files-2.1/com.crashlytics.sdk.android/beta/1.2.5/f73d30657bb44ecb79d434a4ae3fb7d887371d84/beta-1.2.5.aar
/home/xan/.gradle/caches/modules-2/files-2.1/io.fabric.sdk.android/fabric/1.3.17/85fc9aae9009f6fb2beaf23fa0ce1ae13f124413/fabric-1.3.17.aar
/home/xan/.gradle/caches/modules-2/files-2.1/com.crashlytics.sdk.android/crashlytics-core/2.3.17/f3bed4c297be8d30dc5aa7f18b06dff75435bde4/crashlytics-core-2.3.17.aar
/home/xan/.gradle/caches/modules-2/files-2.1/com.crashlytics.sdk.android/answers/1.3.13/83dc1dd439c7da04ce9705f18037fe7551ae06bc/answers-1.3.13.aar

【讨论】:

  • 我会检查,我需要把 gradle 线放在哪里?
  • 只需将它放在构建脚本的末尾,这应该足够好,然后将始终执行,无论您调用什么任务。添加行后只需执行gradlew help
  • 有没有办法查看哪些工件是 jcenter 或 mavencentral 中的库?
  • 我不明白你的问题
  • 每个库可以有多个工件,知道它们是什么的最简单方法是什么?
猜你喜欢
  • 2016-08-19
  • 2015-07-11
  • 1970-01-01
  • 2016-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多