你如何管理Hibernate的万亿JAR文件

时间:2009-03-18 14:26:16

标签: java hibernate

对于我以前的雇主,我曾与Hibernate合作,现在我在一家小型创业公司,我想再次使用它。但是,同时下载Hibernate核心和Hibernate注释分发是相当痛苦的,因为它需要将批次的JAR文件放在一起。因为JAR分为“必需”和“可选”等类别,所以我认为每个开发人员都会得到他的lib文件夹的不同内容。

处理此问题的常用方法是什么?基本上我想有一个正式的方法来获取Hibernate的所有JAR,所以(理论上)如果下个月再次需要另一个项目,我最终会得到完全相同的东西。

编辑:我大致知道Maven的所作所为,但我想知道是否还有其他办法来管理这类事情。

5 个答案:

答案 0 :(得分:4)

正如Aaron已经提到的,Maven是一种选择。

如果您想要更灵活的东西,可以将Apache Ant与Ivy一起使用。

Ivy是一个依赖解析工具,其工作方式与Maven类似,您只需定义项目所需的库,它就会为您下载并下载所有依赖项。

答案 1 :(得分:2)

也许这不是一个很好的答案,但我真的没有看到Hibernate依赖的任何问题。与hibernate3.jar一起,您需要:

  1. 6个必需的罐子,其中commons-collections,dom4j和slf4j更常用于其他开源项目
  2. javassist或CGLIB jar中的1个
  3. 取决于缓存和连接池,最多2个jar文件,这几乎是特定于Hibernate的
  4. 所以,在最糟糕的情况下,你将拥有最多10个罐子,包括Hibernate自己的罐子。除此之外,只有commons-collections,dom4j和slf4j可能会被项目中的其他库使用。这几乎不算太多,它可以轻松管理,并且肯定不能保证使用像Maven这样的“大象”。

答案 2 :(得分:1)

我使用Maven 2并让它为我管理我的依赖项。

答案 3 :(得分:1)

在考虑使用Maven或Ivy管理依赖关系时,需要注意的一点是,存储库的质量会直接影响您的构建体验。如果repo不可用或工件的元数据(pom.xml或ivy.xml)不正确,则可能无法构建。构建自己的本地存储库需要一些工作,但可能值得付出努力。例如,Ivy有一个ANT任务,它将从Maven存储库导入工件并将它们发布到您自己的Ivy存储库。获得Maven仓库的本地副本后,您可以调整元数据以适合您认为适合使用的方案。有时,最新和最好的版本不在公共存储库中,有时可能是一个问题。

答案 4 :(得分:0)

我假设您明确使用了Hibernate API?是否可以选择使用标准API,比方说JPA,让J2EE容器为您管理实现?

否则,请使用Maven或Ivy,具体取决于您当前的构建系统。