問題 - maven 3の案件記述子の読み取りに失敗しました



maven 構成 問題 (3)

私はembed maven 3を使用するnetbeans 7にアップグレードします。私はたくさんのモジュールと他のモジュールを含むモジュールを含むプロジェクトを持っています。 内部プロジェクトに依存しない私の他のサブモジュールは同じ設定でうまく動きます。 この場合、spring-hibernateはサブモジュールの1つであるドメインに依存し、失敗します。

私のメインプロジェクトはこんな感じです

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

Answer #1

1つの可能性は、 profiles.xmlmasterproject.groupIdおよびmasterproject.version値を指定していることです。 もしそうなら、それはもはや maven3ではサポートされていません


Answer #2

そのメッセージ、特にその一部Failure to findというメッセージは、 pom.xmlファイルに該当するプロパティの説明がないことを意味します。

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

そして注意してください:そのようなエラーは多くの従属エラーを引き起こす可能性があります!


Answer #3

私は同じ問題を抱えていた、mavenは非定数(すなわちプロパティ)親バージョンを持つことを好きではない。

親要素を次のように変更してみてください。

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

明らかに、 1.0-SNAPSHOTである必要はなく、単に静的バージョンである必要があります。

お役に立てれば。





pom.xml