主题提要
我 Fork 了一个人的仓库,我希望在此项目的基础上进行自己的修改。
但是,这个项目目前已经出到了 Tag12 版本了,但我根本不需要 Tag10 以后的更新内容。
这时候我就本地 checkout 一个 Tag10 的代码。
按照道理来说,这就一切都 ok 了。
我在 T10 版本上开发,就是我想要的结果,没问题。
可是这时候我发现,人家毕竟是多更新了两个大版本呢。
T12 里有一个小功能,我非常喜欢,我想搬下来。
没问题啊,直接 copy/paste 就好了,对吧?
我确实也这么做了。
但是发现,人家的 Maven dependencies 里,有一个是他们自己另外一个开源项目的组件。
这个小功能,偏偏受到了这个 dependence 的影响。
换句话说,我如果想要正常用这个小功能。
那我就得把 Maven 里的这个 dependence 版本给提高到小功能所在的 T12 版本一样高。
关键是:
一旦我将这个个别 dependence 的版本提高到和对方 T12 版本一样高,我 Fork 出来的整个项目可是建立在 T10 的基础上修改的。
这就意味着,那将带来数不尽的,由这个 dependence 受影响的类的全部修改。
并且每当别人修改一次 T12 版本的这个源码以及这个小功能的更新,我可能都需要去做一次这样的修改。
我不是说这样不可以
但只是想请问各位一下,对于这种情况,有没有更好的解决方式?
还是说我只能跟着对方的版本,每次都修改一下对方 dependence 的源码,然后自己去 Maven 中央仓库创建一个依赖,再把自己 Fork 的这个项目的依赖换成新创建的这个依赖?
换句话说
大家平时是怎么处理这种,自己 Fork 了一个项目,并且想更改别人依赖包的需求的?
毕竟别人觉得好用的开源依赖包,你也许也觉得好用,但同时也希望自己也可以修改一些依赖里的代码。
虽然我觉得如果实在不行
那就只能修改别人的依赖里对小功能实现的一小段代码,然后重新将别人的这个依赖打成自己的 Jar 引在项目里。
但也同时这种修改意味着,以后每次别人更新项目的时候,我都得重新打包来适应对自己项目的影响。
这让我一时半会想不到好的解决方法来处理。
希望各位看官能帮忙留一些自己的想法。
大家可以一起讨论一下。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于