解决依赖关系时出现Maven错误

时间:2012-01-21 15:19:44

标签: java maven dependencies ehcache

我是Maven的新手,正在尝试设置我的第一个POM。我的应用程序将使用EhCache进行缓存。转到Maven Central Repo(链接here)我会复制粘贴<dependency>标记并将其复制到我的pom.xml中,如下所示:

...many dependencies above this point
<dependency>
    <scope>compile</scope>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>4.0.1.Final</version>
</dependency>
<dependency>
    <scope>compile</scope>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>2.5.0</version>
</dependency>
<dependency>
    <scope>compile</scope>
    <groupId>jasperreports</groupId>
    <artifactId>jasperreports</artifactId>
    <version>3.5.3</version>
</dependency>
...many dependencies below this point

当我保存更改时,Eclipse构建工作区并在EhCache 2.5的开始<dependency>标记上给出错误:

  

缺少神器net.sf.ehcache:ehcache:jar:2.5.0

所以我认为v.2.5.0或许它有问题,并且对2.4.72.4.x之前的最后2.5.0版本)重复相同的操作。同样的交易。

由于我对Maven这么新,我甚至不知道从哪里开始寻找。我尝试了Project >> Clean甚至重新启动了Eclipse,看看它是否只是一个典型的Eclipse“怪癖”。不。

我在想:

  • EhCache可以将糟糕的JAR发布到Maven回购中吗?
  • Maven Repo可能有问题吗?
  • 这可能是由于我的pom.xml
  • 中其他配置错误造成的
  • 这可能是我的依赖图上某处发生冲突的“ JAR地狱”问题吗?

SO如何开始解决这个问题?提前谢谢!

3 个答案:

答案 0 :(得分:8)

引用search.maven.org通常更安全。从那里依赖:

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

心灵型pom。来自模块的pom:

  

这是一个用于吸引ehcache-core和ehcache-terracotta的pom工件   用于群集。确保在依赖项中将“type”设置为“pom”。

显然当有人不需要兵马俑时,ehcache-core会像其他答案一样完美无缺。

答案 1 :(得分:8)

他们使用ehcache-core in the official documentationehcache Maven Central does not have a jar artifact代表您的错误消息。

使用ehcache-core将依赖项更改为:

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

在我的计算机上成功下载(ehcache没有)。

答案 2 :(得分:0)

我把它放到了IntelliJ中,它找到了它。我怀疑你的设置有问题。尝试创建一个只包含此依赖项的项目。如果无法下载,我会检查您的设置。例如.m2/settings.xml您使用的是Nexus服务器还是maven代理/缓存?

BTW:搜索JAR的一种更简单的方法是使用http://mvnrepository.com/,它将找到所有可用的版本并向您显示需要添加的XML。