将项目打包成JAR的最佳实践(及其影响)是什么?

Dav*_*err 4 java swing jar

决定如何为项目定义JAR集合(例如Swing GUI)的最佳实践是什么?有许多可能的分组:

  • 每层JAR(演示文稿,业务,数据)
  • JAR per(重要?)GUI面板.对于重要的系统,这导致大量的JAR,但JAR是(应该)更可重用 - 细粒度的粒度
  • 每个"项目"的JAR(在IDE项目的意义上); "common.jar","resources.jar","gui.jar"等

    我是一位经验丰富的开发人 我知道创建JAR的机制,我只是在寻求最佳实践的智慧.

    就个人而言,我喜欢每个组件(例如一个小组)的JAR 的想法,因为我对封装很疯狂,并且在项目中重复使用的圣杯.但是,我担心的是,在实际的性能级别上,JVM会在几十甚至几百个小型JAR上加载类加载.每个JAR都包含; GUI面板代码,必要的资源(即不集中),因此每个面板可以独立.

    当我说"重用的圣杯"时,我更多地说这是因为它展示了一种干净的解耦,封装设计,而不是一定期望它在其他地方重复使用.我认为自己是"通常聪明"的人; 我认为在我的职业生涯中我必须处理的交织在一起的废话的速度让我减慢了10到100倍.一个干净的分离设计允许我一次处理一个概念,一层,一个类.

    有没有人有智慧分享?

  • Ale*_*yak 5

    我建议尽量减少JAR.

    它背后的逻辑,磁盘存储是可用的最便宜的商品,但追踪复杂依赖的时间花费是无价的.

    因此,出现了将.warWeb应用程序的所有依赖项放入单个文件的文件.

    顺便说一句,Eclipse有一个JAR导出器插件,它将所有依赖的jar放入一个超级jar并公开入门级main方法,这样你就可以用java -jar file.jar命令启动你的应用程序了.虽然生成的jar可能很大,但是反面并没有为您的应用程序维护非常复杂的类路径.

    所以,在你的情况下,我会在每个项目中使用一个jar.如果确定确实需要在另一个项目中重用某些代码,只需将其重构为基础项目,并使其成为现有项目和另一个项目的依赖项.