如何压缩java应用程序以获得一个小型jar

如何压缩java应用程序以获得一个小型jar,java,maven,jar,Java,Maven,Jar,在maven的项目组装之后有没有可能有一个小型JAR? 我在使用Spring框架的大型java服务器项目中工作,最终的Jar归档大约为120MB。 我们的前端开发人员添加了一些插件,压缩了他们在web应用程序中的部分。现在,我正试图找到一些后端的方法 Maven默认压缩还不够在dependency hell中受欢迎(我敢打赌大多数代码不是在贵公司编写的,而是来自一些“有用”的库) 看看maven依赖关系树,找出最大的贡献者,并询问您的开发伙伴这些库是否真的有必要(祝您好运!)。。。某些pom.x

在maven的项目组装之后有没有可能有一个小型JAR? 我在使用Spring框架的大型java服务器项目中工作,最终的Jar归档大约为120MB。 我们的前端开发人员添加了一些插件,压缩了他们在web应用程序中的部分。现在,我正试图找到一些后端的方法


Maven默认压缩还不够

在dependency hell中受欢迎(我敢打赌大多数代码不是在贵公司编写的,而是来自一些“有用”的库)

看看maven依赖关系树,找出最大的贡献者,并询问您的开发伙伴这些库是否真的有必要(祝您好运!)。。。某些
pom.xml
声明了依赖项这一事实并不能保证它真正用于您的应用程序


您不仅可以获得更小的JAR,而且还可以降低将来出现可传递版本不兼容的风险。

前端是压缩的,因为它可以让用户在访问您的网页时更快地下载,并且由于用户可以读取页面代码而变得模糊。后端不是由用户下载的,为什么要压缩它呢?谢谢,你是对的,我只想有一个更小的jar用于内存优化和更快的加载Java按需加载类。因此,如果需要一个类,您必须将它包含在JAR中,并且无论如何都会加载它。未使用的类只保留在JAR中,不占用RAM。在为JAR编制索引时,更少的类可能会在每KB中节省一些毫秒,但没有什么值得为最小化JAR而付出的努力(IMHO)。JavaScript和Java之间的最大区别在于,JavaScript只是用作源代码……缩小意味着删除注释/换行符/空格等。这使得JavaScript可以运行,但不再可读。Java以压缩的JAR文件格式编译和交付。问题是你认为你能达到什么样的缩小尺寸?除了
默认压缩之外,
是Java提供的默认压缩(JAR默认)…我也认为付出的努力是不值得的…你在运行spring boot吗?或者Tomcat中的Spring等等?@khmarbaise好的,我知道你的意思,唯一的方法是禁用一些未使用的库。顺便说一句,前端部分有一些插件,可以生成接近正常.js文件的.gz文件,我需要在服务器端支持它谢谢,拉尔夫,我将尝试分析pom.xml中的所有依赖项,如果可以抛出一些东西,如果您使用Spring或Spring boot之类的工具,并且所有依赖项都已由适当的BOM表(Bill of Materials,BOM)处理,那么肯定会有所帮助。您没有版本不兼容,除非您自己定义版本,这是非常不鼓励的。你可能会安全一些…但我认为这不值得努力。。。