Maven 3读取构件描述文件失败

11

我升级到使用嵌入式 Maven 3 的 NetBeans 7。我的项目有很多模块,这些模块中包含其他模块。不依赖于内部项目的其他子模块可在相同配置下正常工作。但是,在这种情况下,依赖于 domain 的 spring-hibernate 失败了。

我的主要项目大致如下:

<modelVersion>4.0.0</modelVersion>

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

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

我的子模块有以下定义

<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]

1
不,我已经更新了pom.xml文件,使用了静态值,例如snapshot-1.0。但是我想改用属性。 - user373201
4个回答

8

我在eclipse中遇到了这个问题,做了以下操作解决了它(尽管我的命令行构建也能正常工作)

  1. 删除.m2/repostiory/...目录中的文件夹
  2. 重新运行IDE中的更新依赖项

虽然我的IDE不能正常工作,但mvn命令行可以,一旦我在IDE中运行它,两者都可以正常工作。非常奇怪。

另一个选择是,重新启动eclipse似乎也有帮助。


我曾经遇到过同样的问题,这个解决方案对我很有效。让人沮丧的是我的IDE(netbeans)和CL maven互相干扰... 我习惯于在终端上执行大部分mvn和svn操作,但当我清理并构建依赖项时,一切又开始正常工作了... - b3bop
是的,我更喜欢使用Ivy并将JAR文件复制到output/libs中,这样就不必使用m2eclipse插件了。在过去的6年中,我一直断断续续地使用它,但似乎存在一些问题。 - Dean Hiller
有趣的是你提到了m2eclipse。这实际上是我从Eclipse转换到NetBeans的原因。我非常喜欢Maven(或者更确切地说,我非常喜欢Maven的理念。但有时它真的会让我很沮丧),而NetBeans拥有极佳的Maven支持。 - b3bop

0

我曾经遇到过同样的问题,Maven 不支持使用非常量(即属性)作为父版本。

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

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

显然,它不必是1.0-SNAPSHOT,只需要是某个静态版本即可。

希望这可以帮到你。


0
那个消息,特别是其中的Failure to find部分,意味着你在pom.xml文件中缺少适当属性的描述:
<properties>
    <masterproject.version>the.appropriate.version</masterproject.version>
</properties>

要小心:这样的错误可能会引发许多相关的错误!


0

可能的一种情况是您正在profiles.xml中指定masterproject.groupIdmasterproject.version的值。如果是这样,它在maven3中已经不再支持


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