Ehcache和Ehcache-core的区别

15

我是Spring框架中ehcache v/s ehcache-core的初学者,我的pom.xml使用的是ehcache版本1.5.0

<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>1.5.0</version>
</dependency>

现在需要更新ehcache版本,因为它将在另一个jar中使用:- 要更新的ehcache版本是2.7.0 但是会返回错误: 找不到net.sf.ehcache.Cache.getStatistics()方法。

现在,我正在通过ehcache-core 2.5.7替换ehcache:

<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.5.7</version>
</dependency>

它是否会破坏其他功能或者与ehcache一样工作?

2个回答

4
就像许多其他大型框架(如Spring)一样,ehcache也分为几个模块。其中一个模块是核心模块,其他模块包括web、server、jcache、debugger等等(请参见https://mvnrepository.com/artifact/org.ehcache.modules)。
有时,出于各种原因,您可能不想将整个大型框架及其所有子库都包含在项目中。那么,您可以决定要使用哪个模块。
换句话说,使用ehcache pom将在您的项目中包含完整的库。使用ehcache-core将仅包括在ehcache-core中定义的功能。
您可以找出包含所需功能的模块并将其包含在项目中,或者选择完整的ehcache但使用适当的版本。

5
这个答案现在看起来已经过时了。ehcache 工件包含了所有与 Ehcache 相关的内容。我不太清楚 ehcache-core 可能是什么,而且 Terracotta 的下载页面上的文本也没有提供帮助。在我看来,ehcache-core 现在已经过时了。 - Michael Piefel
ehcache-core并不过时。最新版本2.6.11于2014年4月发布。它的目的是与其他模块(例如hibernate-ehcache)配对以增加功能。 - Vinay
链接失效(404)。 - naXa stands with Ukraine
@MichaelPiefel,ehcache核心仍然存在并且仍在更新,等等 - https://mvnrepository.com/artifact/org.ehcache.modules/ehcache-core/3.5.2 - Dariusz
@Dariusz:很好知道,感谢你指出这一点。然而,我不会说“仍然存在”,而是说“再次存在”。该工件已从net.sf.ehcache移动到版本3的org.ehcache并进行了重新组织。 - Michael Piefel
我认为这是有些不同的东西。Ehcache 已经更新并发布了最新版本,Ehcache-core 移动到了另一个包中,之前的版本已经发布了7年。 - Krzysztof Krasoń

1

在版本2.5.7中仍然存在ehcache模块,但它只拉取依赖项,因此其类型为pom。其中一个依赖项是ehcache-core。我猜你的功能不仅仅需要这个。请尝试

<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>2.5.7</version>
    <type>pom</type>
</dependency>

哪个最新的ehcache jar包含net.sf.ehcache.Cache.getStatistics()方法? - user2317982
不,Maven没有下载ehcache 2.5.7的jar包。 - user2317982
就像我之前所说,没有jar文件,只有pom文件。但是它应该会加载其他可能包含你所需内容的依赖项jar文件。我假设它们没有被加载进来? - André Stannek
2
有一个 JAR,而不仅仅是 POM,针对 net.sf.ehcache:ehcache:2.8.1 - Michael Piefel

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