当前位置: 首页 > 面试题库 >

为什么我应该将gradle依赖项包含为`@ aar`?

宇文智敏
2023-03-14
问题内容

为什么我应该(或不应该)将gradle依赖项包含为@aar

有什么好处/缺点?

如您所见,我在支持它的下面的库中添加了@aar。但是一切似乎都还没有做完…

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile 'com.google.android.gms:play-services-maps:7.3.+'
    compile 'com.google.guava:guava:18.0'
    compile 'com.octo.android.robospice:robospice-spring-android:1.4.14'
    compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
    compile 'com.mcxiaoke.volley:library-aar:1.0.0@aar'
    compile 'de.psdev.licensesdialog:licensesdialog:1.7.0@aar'
}

问题答案:

在大多数情况下,您可以使用.jar或上载多种格式的库.aar

如果不指定@后缀,则将以其默认格式(由作者定义,如果不是.jar,则以默认格式)以及所有依赖项下载该库。

compile 'com.android.support:appcompat-v7:22.1.1'

指定@后缀时,将强制以指定的格式(可能存在或可能不存在)下载库。这很有用,例如当作者忘记指定该库为an
.aar并且maven(或gradle,不确定)将其.jar默认情况下对待时。当@后缀指定此库的依赖不再下载,所以你必须确保手动。

compile 'com.android.support:appcompat-v7:22.1.1@aar'
compile 'com.android.support:support-v4:22.1.1@jar'

为了确保在@指定后缀时下载了库的完整依赖树,您必须按以下方式编写它:

compile ('com.android.support:appcompat-v7:22.1.1@aar') {
    transitive = true
}


 类似资料:
  • 我试图在IntelliJ中用Scala2.11.7构建一个项目。我已经将设置为,但是当我检查外部库时,我可以看到。 是否需要将声明为中的依赖项?这些文件令人困惑,似乎在连续的段落中说我确实需要然后不需要: 当使用标准库以外的Scala依赖项时,将其添加为普通托管依赖项。例如,要依赖Scala编译器, libraryDependencies+=“org.scala-lang”%“scala-comp

  • 问题内容: FindBugs报告一个错误: 依赖默认编码找到了对将执行字节到字符串(或字符串到字节)转换的方法的调用,并假定默认平台编码是合适的。这将导致应用程序行为在平台之间有所不同。使用备用API并明确指定字符集名称或字符集对象。 我像这样使用FileReader(仅是一段代码): 要更正错误,我需要更改 至 当我使用PrintWriter时,发生了相同的错误。所以现在我有一个问题。什么时候可

  • null build.gradle 沉降。gradle src/ 在中,我希望将添加为依赖项: 不幸的是,我总是收到这样的错误消息: 我想知道我做错了什么,为什么显然没有很多其他人有同样的问题。如果有提示我会很感激的。 注意:这不是一个Android项目。

  • 我正在开发一个Java项目,使用maven作为依赖项管理器/构建工具。我当前在将依赖项的依赖项解析到正确版本时遇到问题。 有问题的依赖项称为JasperReports-Functions-6.1.0.jar,它不是托管在maven repo中,而是以jar形式提供的。 如何强制jar依赖项使用子依赖项的某个版本?

  • 我正在使用gradle构建一个groovy/java应用程序。在我向google guice 3.0添加依赖项之前,这一直很好。Gradle不会将guice jar添加到编译类路径中,至少看起来是这样。我遇到了这样的错误: 在我的身材中。gradle file I具有以下依赖项: 我正在使用Springsource工具套件2.9.2及其gradle插件开发应用程序,它使用gradles依赖关系管理

  • 我使用在JAR中包含依赖项 问题是它没有添加我的dependancies的所有dependancie树,我不知道为什么。 有人知道吗?