在Android上分叉gradle依赖项

apa*_*ual 16 java android gradle android-gradle-plugin jitpack

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

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

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

Adapter --> AdapterA
Adapter --> AdapterB
Run Code Online (Sandbox Code Playgroud)

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

Adapter --> AdapterA --> AdapterB
Run Code Online (Sandbox Code Playgroud)

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

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

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

Mal*_*olm 5

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

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


ayv*_*azj 5

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

class YourAdapter {
    private AdapterA adapterA
    private AdapterB adapterB
}
Run Code Online (Sandbox Code Playgroud)

  • 你将如何使用父适配器(甚至不是适配器)的组合适配器? (3认同)