maven 3无法读取工件描述符

时间:2011-02-24 00:26:37

标签: maven maven-3 pom.xml

我升级到使用embeded maven 3的netbeans 7.我有一个包含许多模块和包含其他模块的模块的项目。我的其他子模块不依赖于内部项目,可以使用相同的配置。在这种情况下,spring-hibernate依赖于作为子模块之一的域而失败。

我的主要项目有类似的东西

<modelVersion>4.0.0</modelVersion>

<artifactId>spring</artifactId>
<packaging>pom</packaging>

<groupId>${masterproject.groupId}</groupId>
<version>${masterproject.version}</version>

我的子模块有以下def

<modelVersion>4.0.0</modelVersion>
<parent>
    <artifactId>spring</artifactId>
    <groupId>${masterproject.groupId}</groupId>
    <version>${masterproject.version}</version>
</parent>

<artifactId>spring-hibernate</artifactId>
<packaging>pom</packaging>

<dependency>
        <groupId>${masterproject.groupId}</groupId>
        <artifactId>domain</artifactId>
</dependency>

我正在使用以下$ {masterproject.groupId},$ {masterproject.version},因为我不想在所有子模块中放置静态值,因为每个子模块都包含父项。不确定这是否是问题的原因。

所有这一切都适用于maven 2.但是使用maven 3我得到以下错误消息

Failed to read artifact descriptor for com.merc:domain:jar:1.0-SNAPSHOT: Failure to find ${masterproject.groupId}:MavenMasterProject:pom:${masterproject.version} in http://repository.springsource.com/maven/bundles/release was cached in the local repository, resolution will not be reattempted until the update interval of com.springsource.repository.bundles.release has elapsed or updates are forced -> [Help 1]

4 个答案:

答案 0 :(得分:8)

我在eclipse中有这个并做了这个修复它(即使我的命令行构建工作)

  1. 删除.m2 / repostiory /....
  2. 中的目录
  3. 在我的IDE中重新运行更新依赖项
  4. mvn命令行工作,而我的IDE没有,一旦我在我的IDE中运行它都工作..非常奇怪。

    作为另一种选择, 重启日食似乎也有帮助

答案 1 :(得分:0)

一种可能性是您在masterproject.groupId中指定masterproject.versionprofiles.xml的值。如果是,则在maven3中为no longer supported

答案 2 :(得分:0)

该消息,尤其是Failure to find部分,表示您缺少pom.xml文件中相应属性的描述:

<properties>
    <masterproject.version>the.appropriate.version</masterproject.version>
</properties>

小心:这样的错误可能会引起很多依赖错误!

答案 3 :(得分:0)

我有同样的问题,maven不喜欢拥有非常量(即属性)的父版本。

尝试将您的父元素更改为:

<parent>
    <artifactId>spring</artifactId>
    <groupId>${masterproject.groupId}</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

显然,它不必是1.0-SNAPSHOT它必须是一些静态版本。

希望这有帮助。