如果您愿意,可以跳过文字墙并直接回答下面列出的问题。
某些背景:
我目前正在大规模,高度模块化的Spring应用程序上做一些工作。该应用程序由多个独立的Maven项目组成,这些项目是单独构建的。在编译整个应用程序时,这些项目作为依赖项被拉入并叠加到生成的“超级WAR”文件中。
问题:
前一段中描述的构建过程(很快)效果很好,但是非常慢,即使已经编译了所有依赖项并且可以从本地maven存储库获取。
一些简单的测试表明,当完全关闭jar压缩时,'super WAR'的构建时间减少了一半,但代价是文件大小相对较小(约10%)。
实际上,这并不奇怪,因为构建需要构建/压缩所有依赖项,然后再解压缩,覆盖,然后再次压缩(作为一个巨大的统一战争文件)。
除此之外,很少有“子项目”是纯Web应用程序,它们根本不包含需要编译(或压缩)的Java代码(仅限静态资源)。
问题:
jar(war,really)压缩有什么好处,除了(可忽略的)减小文件大小?
对于Java EE或Spring Web应用程序,在完全关闭压缩时是否会引入其他(性能)问题?我认为它有可能帮助构建时间和JVM启动。
欢迎任何关于如何更有效地处理非Java应用程序的构建过程的建议。我已经考虑将它们捆绑为资源,但我不确定如何实现这一目标,同时确保它们仍然可以作为独立的战争文件构建。
答案 0 :(得分:1)
除了有时可以忽略不计的文件大小减少以及只需管理一个文件而不是整个目录树的简单性之外,还有一些优点: