在android中创建具有依赖项的库

在android中创建具有依赖项的库,android,android-studio,gradle,dependencies,android-gradle-plugin,Android,Android Studio,Gradle,Dependencies,Android Gradle Plugin,我创建了一个库“LibA”,它依赖于许多第三方库,如RecyclerView、EventBus等。当我试图将它作为aar包含在另一个项目中时,该库成功地包含了进来,但aar中没有依赖项 Q1我如何在LibA中包含依赖项,以便当其他项目包含此库时,它不必担心我的库的内部依赖项 Q2gradle如何管理库的依赖关系,是一次下载所有依赖关系,还是首先检查主项目中已有的依赖关系 Q3当有人包含来自jcenter的库时,是否会带来所有依赖项 任何帮助都将不胜感激。:) aar文件不包含嵌套(或)依赖项,也

我创建了一个库“LibA”,它依赖于许多第三方库,如RecyclerView、EventBus等。当我试图将它作为aar包含在另一个项目中时,该库成功地包含了进来,但aar中没有依赖项

Q1我如何在LibA中包含依赖项,以便当其他项目包含此库时,它不必担心我的库的内部依赖项

Q2gradle如何管理库的依赖关系,是一次下载所有依赖关系,还是首先检查主项目中已有的依赖关系

Q3当有人包含来自jcenter的库时,是否会带来所有依赖项


任何帮助都将不胜感激。:)

aar文件不包含嵌套(或)依赖项,也没有描述库使用的依赖项的pom文件

这意味着,如果要使用
flatDir
repo导入aar文件,则还必须在项目中指定依赖项

Q1我如何在LibA中包含依赖项,这样当其他项目包含这个库时,它就不必担心我的库的内部依赖项了

您应该使用maven repository(您必须在私有或公共maven repo中发布该库),您将不会遇到相同的问题。
在本例中,gradle使用包含依赖项列表的pom文件下载依赖项

问题2:gradle如何管理库的依赖关系,它是一次下载所有依赖关系,还是首先检查主项目中已经存在的依赖关系

Gradle为您处理依赖项。它不会添加相同的依赖项两次或更多次

Q3当有人包含来自jcenter的库时,是否会带来所有依赖项

如前所述,在本例中,依赖项有一个描述所有嵌套依赖项的pom文件。Gradle会自动下载它

Q1我如何在LibA中包含依赖项,这样当其他项目包含这个库时,它就不必担心我的库的内部依赖项了

您应该使用一些依赖关系管理器。例如,Maven Central具有
.pom
文件,该文件定义了所有应使用的附加依赖项

问题2:gradle如何管理库的依赖关系,它是一次下载所有依赖关系,还是首先检查主项目中已经存在的依赖关系

gradle
下载所有必要的依赖项。它为依赖项创建一个图表,尝试解决冲突并下载它们

Q3当有人包含来自jcenter的库时,是否会带来所有依赖项


如果pom文件中未定义其他依赖项,则不会下载这些依赖项,只有库

只是术语中的小补丁——“嵌套”应该是“可传递”的think@EugenMartynov对在这种情况下,Nested是可传递的。