您能否解释为什么库可以添加为.jar,整个项目或外部库?
你有不同的可能性,因为你可以有不同的情况。通常图书馆是由其他团队建立的,你不能决定它是如何分配的。
- 您可以有一个自己的库或本地叉。在这种情况下你的代码,你可以作为一个模块
添加该库在这种情况下,只需添加在module/build.gradle
:
apply plugin: 'com.android.library'
,并添加在主项目的依赖像:
dependencies{
compile project(':module')
}
- 可以使用maven dependency。在这种情况下,某人将该库上载到Maven存储库中。
目前这是我认为最好的解决方案。
在这种情况下,只需添加一个依赖于你的项目
dependencies{
compile 'group:name:version'
}
这种依赖关系可以是AAR文件,也罐子文件。
你也可以在公共或私人maven发布自己的图书馆。
在这种情况下添加一个AAR文件定义平库:
repositories {
flatDir {
dirs 'libs'
}
}
,并添加依赖:
dependencies {
compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar')
}
添加jar文件通常你可以把所有罐子libs文件夹中,并添加依赖:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
所以没有什么区别什么他们一旦编译完成,它的纯粹如何被添加到项目中? – Aggressor
@Aggressor如果你有嵌套的依赖关系有一些区别。 Gradle使用Maven模块处理它,而您必须使用aar和jar文件来管理自己。 –
@GabrieleMariotti你能告诉我,当aar lib有一个像retrofit这样的依赖项时会发生什么情况,这是否包含了aar文件所链接的模块/项目所需的改造?我认为这不足以让我对这个疑问提出一个独立的问题 – user2450263