Maven依赖关系引用非现有库

时间:2013-05-14 16:45:27

标签: eclipse maven m2eclipse m2e

如上所述,我对maven有疑问。在我目前的eclipse项目中,我使用maven进行依赖管理,直到现在它都运行良好。

该项目不再有效,它声明:

Maven Dependencies references non existing library: 
  c:\.m2\repository\org\eclipse\lyo\oslc4j\core\oslc4j-core\1.1\oslc4j-core-1.1.jar'

如果我检查文件夹,则存在与jar名称相同但以jar.lastUpdated结尾的文件。

我尝试了maven clean和maven更新,但没有用。我的pom.xml中的行标记为红色,并指出:

Missing artifact org.eclipse.lyo.oslc4j.core:oslc4j-core:jar:1.1

这是我的pom.xml的内容:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:/www.w3.org2001XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.or/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>rtc_oslc_common</groupId>
<artifactId>rtc_oslc_common</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
  <sourceDirectory>src</sourceDirectory>
  <plugins>
    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>2.3.2</version>
      <configuration>
        <source>1.6</source>
        <target>1.6</target>
      </configuration>
    </plugin>
  </plugins>
</build>

此块是带有标记的块,它表示缺少工件。

<dependencies>
  <dependency>
    <groupId>org.eclipse.lyo.oslc4j.core</groupId>
    <artifactId>oslc4j-core</artifactId>
    <version>1.1</version>
  </dependency>
</dependencies>
</project>

我不知道为什么它不仅仅是重装罐子而是保持这种奇怪的状态。非常适合帮助。

4 个答案:

答案 0 :(得分:2)

Maven基本上告诉你它无法找到你在pom.xml中声明的依赖项。有一个名为*.jar.lastUpdated的文件的事实意味着Maven试图下载依赖项但无法获取它。

首先,您可以尝试完全删除包含*.jar.lastUpdated的文件夹,然后再次运行构建。然后,Maven将尝试再次下载依赖项。也许这只是一个暂时的错误。

但由于此依赖项在Maven Central中不可用,您可能必须将相应的存储库添加到pom.xml。

答案 1 :(得分:0)

有时官方声明的依赖配置也是错误的。例如,截至2015-05-23,Robolectric网站说...

<dependency>
   <groupId>org.robolectric</groupId>
   <artifactId>robolectric</artifactId>
   <version>3.0</version>
   <scope>test</scope>
</dependency>

...它给出了您描述的相同错误。在敲了一会儿之后(当然这是我第一次尝试过Maven),我最后在Maven Central查看了这个网址:http://mvnrepository.com/artifact/org.robolectric/robolectric

瞧,没有版本3.0 。相反,有版本“3.0-rc1”和“3.0-rc2”。当我将依赖项更改为“3.0-rc2”时,突然一切正常。

答案 2 :(得分:0)

我得到了这样的错误:

  

容器'Maven Dependencies'引用非现有库'G:\ m2 \ repository \ org \ apache \ tomcat \ tomcat-embed \ 7.0.65 \ tomcat-embed-7.0.65.jar'

我发现tomcat-embed实际上是*.pom个文件但不是*.jar

<dependency>
  <groupId>org.apache.tomcat</groupId>
  <artifactId>tomcat-embed</artifactId>
  <version>7.0.65</version>
  <type>pom</type>
</dependency>

所以我解决了这个问题:

  1. 删除tomcat-embed-7.0.65.jar.lastUpdated
  2. *.jar文件复制到目录G:\m2\repository\org\apache\tomcat\tomcat-embed\7.0.65\
  3. 已重命名为tomcat-embed-7.0.65.jar
  4. 但另一种解决这个问题的方法是什么?

答案 3 :(得分:0)

首先,你修复,互联网问题。之后您必须删除maven存储库文件夹中的文件夹。 (对我来说是C:\ Users \ ekomut.m2 \ repository)

如果您遇到Internet问题,可以看到“* .jar.lastUpdated”。如果您不删除此文件夹,则maven无法再次尝试下载。