由于各种原因,我遇到的情况是,我在小型独立的 android 库项目中存在多个应用程序组件,这些组件正在编译为.aar
s.
在某些情况下,这些会被推送到 Maven 存储库并以这种方式使用,这很好,一切都很好。
在其他情况下,这些 aar 需要编译到另一个android库中。使用我当前的配置,我遇到了问题,因为子 aar lib 内容未添加到父 aar lib 项目中gradlew assembleRelease
.
依赖流就像
Apk app project -> parentLibProject -*> childLibProject
这会导致父 aar 编译良好,因为子 aar 位于类路径上,但是不会在输出父 aar 中包含子 aar 库内容。这意味着任何使用父 lib 的 Android 应用程序项目都将在编译时失败,因为子 lib aar 文件/代码不在父 aar 中。我不想强制应用程序项目手动列出已在父库项目中列出的所有子库项目。本质上,我希望以类似的方式对待 aarsjar
库项目使用的库,即编译到输出中aar
.
我尝试了一些不成功的方法(全部建造精细但所有无法将子 aar lib 内容输出到父 aar lib 文件中):
- 编译后的孩子
aar
inside /libs/
,它是在存储库闭包中声明的flatDir { dirs 'libs' }
并导入到父 lib 项目中compile(name:'someAarLib-x.y.z', ext:'aar')
. 这编译得很好,但父项目还需要包含someAarLib-x.y.z
阿尔和compile(name:'someAarLib-x.y.z', ext:'aar')
.
- 将子 aar 作为模块导入,如本答案中所述https://stackoverflow.com/a/24894387/236743 https://stackoverflow.com/a/24894387/236743。编译正常,但有与 1 相同的问题。
- 使用与以下相同的方法https://stackoverflow.com/a/33264652/236743 https://stackoverflow.com/a/33264652/236743但与
*.aar
。这根本不起作用(正如其他地方评论的那样)
我目前使用 Gradle 2.3 和 android 插件 1.2.1。
现在我正在以一种奇怪的方式来拉动classes.jar
s 从子 aar 项目中取出并放入父 lib 项目(按照https://stackoverflow.com/a/33264652/236743 https://stackoverflow.com/a/33264652/236743)因为碰巧他们不使用任何 xml 资源,所以在这种情况下我不会丢失任何东西。但这有点耗时,而且可扩展性不太好/我不想做一些手动工作。是的,可以自动执行此操作,但我确信有一种官方方法,我只是没有偶然发现正确的配置。
非常感谢您的帮助。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)