繁体   English   中英

在Android上分叉gradle依赖项

[英]Forking gradle dependencies on Android

我有一段时间没有开发Android,我正在尝试使用Gradle依赖项的新功能做正确的事情。

我想知道当您需要修改一个特定的依赖项以满足您的需求时,最佳实践是什么。

例如,假设我们有两个库通过子类化适配器来扩展RecyclerView功能:

Adapter --> AdapterA
Adapter --> AdapterB

由于Java不支持多重继承,我想让两个库协同工作的唯一方法就是修改其中一个,这样子类层次结构如下所示:

Adapter --> AdapterA --> AdapterB

如果我是正确的,这是要走的路,那么什么是修改和集成库的最佳方法,这里是我能想到的选项:

  1. 在GitHub上分叉并使用JitPack添加分叉修改的库
  2. 将库作为本地模块添加到应用程序并修改源

请证明或建议什么是更好的,如果有任何其他替代方案来实现这一点。

我说只需要创建一个依赖于其他库的本地模块并修改它。 不要忘记记录您所做的更改。 理想情况下,您将模块作为VCS中的单独提交导入,然后在另一个提交中对其进行修改。

这样做的好处是,如果您想要更新库,那么这将非常容易,因为您只需要复制新版本的源代码,然后进行相同的修改。 但是,如果采用其他方法,那么您还必须将所有更改推送到GitHub,这会增加复杂性,但除非您想与其他人共享修改,否则几乎没有任何好处。

这似乎是一个不寻常的情况 - 也许一个例子会有所帮助
在使用分叉库之前还要考虑构图。 https://en.wikipedia.org/wiki/Composition_over_inheritance

class YourAdapter {
    private AdapterA adapterA
    private AdapterB adapterB
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM