我升级到使用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]
答案 0 :(得分:8)
我在eclipse中有这个并做了这个修复它(即使我的命令行构建工作)
mvn命令行工作,而我的IDE没有,一旦我在我的IDE中运行它都工作..非常奇怪。
作为另一种选择, 重启日食似乎也有帮助
答案 1 :(得分:0)
一种可能性是您在masterproject.groupId
中指定masterproject.version
和profiles.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
它必须是一些静态版本。
希望这有帮助。