关于第三方依赖jar的问题

当程序是一个独立jar的时候

1.利用maven 插件,将所有第三方jar加入这个独立jar中,即可直接运行,就是size大些

2.maven打包时不加入第三方依赖jar,添加lib,将第三方依赖jar复制到lib中,写脚本set classpath,然后运行独立jar

这两种方法哪种更好,利弊是什么?适合于日常项目开发?

阅读 5.3k
4 个回答

1省事方便,在某些情况下也必须是这样,比如我用过的storm。但是随着你项目大了,jar包多了,难免会遇到jar包冲突,告诉你版本不对或者找不到某个类,这时候你就困惑了,maven不是帮我解决了吗? 这个时候还就得一个jar包一个jar包的整才能解决问题,最后再修改pom文件。另外,其他人也说了,方式2在更新时,只需要更新个别jar包,远程部署时对于龟速网络还是有优势的,还有个好处,你可以更熟悉项目的依赖,便于解决问题。总之:maven可以解决编译时的冲突(通过pom.xml),但是解决不了运行时的依赖和冲突。

1好,省事,打jar就是压缩了一下,springboot部署时不就是打成一个jar

  1. 部署运行方便,我个人觉得仅此而已。

  2. 更新个别依赖库时无需重新打包;更新应用本身时上传的体积更小。日常维护更偏重于这种方式。

个人觉得第一种方式更好一些,只生成一个文件,很干净,运维部署也方便,就像web项目打成war包,依赖的所有jar都在war包里面。我经历的多个公司也都是采用第一种方式。

另外附上我的一篇博客:http://xxgblog.com/2015/08/07... 介绍了你说的两种包的Maven打包插件的使用方法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题