在Android上分叉gradle依赖项

时间:2017-01-09 08:57:48

标签: java android gradle android-gradle jitpack

我还没有开发Android一段时间,我正在努力将新功能作为Gradle依赖项做正确的事。

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

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

Adapter --> AdapterA
Adapter --> AdapterB

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

Adapter --> AdapterA --> AdapterB

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

  1. 在GitHub上分叉并使用JitPack添加分叉修改的库
  2. 将库作为本地模块添加到应用程序并修改源
  3. 请证明或建议什么是更好的,如果有任何其他替代方案来实现这一点。

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:5)

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

Encode?