对于我以前的雇主,我曾与Hibernate合作,现在我在一家小型创业公司,我想再次使用它。但是,同时下载Hibernate核心和Hibernate注释分发是相当痛苦的,因为它需要将批次的JAR文件放在一起。因为JAR分为“必需”和“可选”等类别,所以我认为每个开发人员都会得到他的lib文件夹的不同内容。
处理此问题的常用方法是什么?基本上我想有一个正式的方法来获取Hibernate的所有JAR,所以(理论上)如果下个月再次需要另一个项目,我最终会得到完全相同的东西。
编辑:我大致知道Maven的所作所为,但我想知道是否还有其他办法来管理这类事情。
答案 0 :(得分:4)
正如Aaron已经提到的,Maven是一种选择。
如果您想要更灵活的东西,可以将Apache Ant与Ivy一起使用。
Ivy是一个依赖解析工具,其工作方式与Maven类似,您只需定义项目所需的库,它就会为您下载并下载所有依赖项。
答案 1 :(得分:2)
也许这不是一个很好的答案,但我真的没有看到Hibernate依赖的任何问题。与hibernate3.jar
一起,您需要:
所以,在最糟糕的情况下,你将拥有最多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,具体取决于您当前的构建系统。