这个问题已经在这里有了答案: > Do I have to recompile my application when I upgrade a third party jar? 5个
这似乎是一个愚蠢的问题,但是在我去团队会议上大开眼界之前,我想绝对确定自己正确理解了一切.
我有一个引用第三方jar文件的Java应用程序.我的代码仅使用其接口.如果第三方为我提供了他们jar文件的不同版本,而我只是用新的jar替换了旧的jar,我是否需要重新编译我的应用程序?
如果接口方法签名包含其类之一(例如
public void thirdPartyMethod(ThirdPartyEvent e);
据我了解,除非接口已更改,否则不必重新编译.即使ThirdPartyEvent类已更改(添加了新方法),除非我想访问这些新方法,否则仍然不必重新编译.
我的理解正确吗?
提前致谢.
编辑:
这个问题可以关闭,它是重复的.当我搜索时没有看到它-不知道我怎么会错过它…
顺便说一句,我的问题并没有明确说明,但API并未更改-接口是相同的.
最终编辑:
我确实要指出,虽然有时候部署新版本的第三方jar比部署整个重新编译的应用程序容易得多…
实际上,我会定期重新编译,这样做绝对没有害处.但是,在我工作的地方,对Java接口的工作原理完全缺乏了解.每个人都担心新的第三方实现已更改,我们的应用程序不再起作用.我告诉他们,只有在第三方更改了API或给了我们一个破罐的情况下,这种情况才会发生.
总之,长话短说,我认为如果可以证明您可以替换jar而不进行重新编译,那将(至少部分地)说明接口的工作方式.我已经通过电子邮件发送了指向该帖子的链接,重复链接和Mik378的包含链接,希望它最终能够沉入…<