Java,多个JAR文件还是一个大的JAR文件?

8

就效率和内存使用而言,一个大的JAR包含每个所需功能的类/包是否更好?还是将其分解为更小、更易于管理的JAR包更好?

假设我有一个包含20-30个不相关包的大型项目:

com.example.test
   - class 1
   - class 2
   - class 3
   - another.package
      - class 1
      - class 2
      - class 3
   - another.package
      - class 1
      - class 2
      - class 3
   - another.package
      - class 1
      - class 2
      - class 3

将每个包分成自己的jar文件,会更有效率吗?并且有多个轻量级的小jar文件?我不确定这是否重要,但我很好奇,因为如果我将所有东西分开一点,将会使进一步开发变得更容易。(只要没有性能缺陷)


4
将代码分成独立的 JAR 包的一个原因是为了提供可重用的库系列。 - MadProgrammer
2
如果您能使用增量方法,可以使用 ^ + 和来节省构建时间。 - jmj
5
我认为性能并不是真正的问题,而是关于模块化的担忧,通过拆分应用程序可以改善这种情况。 - Dici
@Dici,这正是我所追求的“模块化”。 - ThatGuy343
@JigarJoshi 实践证明,在Java世界中,没有“clean”就不行。因此,构建时间是相同的,甚至更糟。 - loshad vtapkah
@loshad 取决于你的项目有多模块化。 - jmj
1个回答

11
如果这些包没有关联,那么它们就不应该在同一个jar中,没有例外。
通过拆分jar,用户可以选择他们需要的包进行部署,只包含所需的内容,没有多余的。
你希望部署尽可能少的代码。多余的内容会增加潜在问题、错误和安全漏洞。虽然与前面提到的其他问题相比,无用的东西也可能减缓类装入器的速度,但这只是一个小问题。
如果其中一些包或所有包总是一起使用,出于实际原因将它们捆绑在一起也可以。

1
任何额外的东西都是额外的潜在问题、漏洞和安全隐患。我注意到随着每次部署的变化,这个问题正在逐渐加剧。感谢您提供如此清晰的答案 :) - ThatGuy343

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接