首页 / JAVA / 在Java中修改外部库中的文件
在Java中修改外部库中的文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Java中修改外部库中的文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1641字,纯文字阅读大概需要3分钟。
内容图文
![在Java中修改外部库中的文件](/upload/InfoBanner/zyjiaocheng/780/4c37579e2f664a038720d7d6087818f9.jpg)
我有一个Spring Framework项目,它使用Maven来解析依赖项.该项目依赖于另一个Spring项目(Spring Social Facebook),该项目用于Facebook登录.突然间,我开始收到很多错误,因为Facebook登录功能因Facebook API的变化而破裂.解决方案非常简单,但需要在外部库的文件中进行微小更改 – 将变量从类型integer更改为long.
现在我知道了解决方案,但我无法控制这个库.我想自己解决这个问题,直到库更新了修复程序,而不是等待系统损坏的几天.
我的问题是:有没有简单的方法可以更改此库的源代码,直到库中有可用的修复程序?这样做的推荐方法是什么?目前我想到两件事:分叉库,进行更改,并创建一个私有Maven存储库,并将依赖项替换为使用私有存储库的依赖项.如果可以,我想避免这样做.我能想到的另一种方法是分叉库,进行更改,将更新的库编译成jar文件并替换Maven依赖项以使用jar文件.
有没有更好的办法?你会在这样的(临时)场景中推荐什么?谢谢!
解决方法:
根据工作经验,我在多家公司看到了以下方法:
>修复源代码中的问题
>使用相同的Maven坐标再次打包它
>添加分类器,通常是companyname-patch(ed)
>把它放在enterprise Maven repository(即Artifactory或Nexus)
因此,你会从
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
</dependency>
至
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<classifier>company-patch</classifier>
</dependency>
这有助于您保持更多可追溯性:
>分类器向内部开发人员以及承包商表明这是公司补丁
>您确切知道应用了哪个库和哪个版本的补丁(因此,部分自我记录)
此外,它实际上是Maven分类器功能的合法和良好用法.
重用相同的Maven坐标可能会影响可移植性(我在本地计算机上有不同的行为,为什么?)和可维护性(让我们更新这个库,操作…它是修补过的,我不知道),同时创建新的Maven坐标可能会造成误解(这个库是什么?)和错误(我将替换为这个官方的,操作……它不再起作用了).
内容总结
以上是互联网集市为您收集整理的在Java中修改外部库中的文件全部内容,希望文章能够帮你解决在Java中修改外部库中的文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。