次の構造のprojectA-parentがあります。
projectA-parent|
----------------|projectA
----------------|projectA-core
----------------|projectA-api
モジュールprojectAは、コアとAPI [1]への依存関係を定義するだけなので、コアとAPIの両方を必要とする他のプロジェクトでprojectAへの依存関係を定義できます。プロジェクトをArchiva(1.4-M2)、SNAPSHOTリポジトリにデプロイします。
projectAへの依存関係を定義する別のプロジェクトXがあり、今日の午後、目標「mvncompile」が未解決のコンパイルの問題で失敗し始めました。そのプロジェクトで「mvndependency:tree」を使用して調査したところ、projectAの下で、projectA-coreへの依存関係が「ランタイム」として宣言されていることがわかりました。今朝はこのようでしたが、スコープが「コンパイル」であるため、いくつかのmvnインストールを実行しました(最新のpom定義がリストされている[1]を参照)。
archivaを見ると、このプロジェクトの次のファイル(省略形)が表示されます。
projectA-0.0.7-20120712.084920-61-tests.jar
projectA-0.0.7-20120712.084920-61-tests.jar.md5
projectA-0.0.7-20120712.084920-61-tests.jar.sha1
projectA-0.0.7-20120712.084920-61.jar
projectA-0.0.7-20120712.084920-61.jar.md5
projectA-0.0.7-20120712.084920-61.jar.sha1
projectA-0.0.7-20120712.084920-61.pom
projectA-0.0.7-20120712.084920-61.pom.md5
projectA-0.0.7-20120712.084920-61.pom.sha1
projectA-0.0.7-20120712.172412-87-tests.jar
projectA-0.0.7-20120712.172412-87-tests.jar.md5
projectA-0.0.7-20120712.172412-87-tests.jar.sha1
projectA-0.0.7-20120712.172412-87.pom
projectA-0.0.7-20120712.172412-87.pom.md5
projectA-0.0.7-20120712.172412-87.pom.sha1
projectA-0.0.7-20120712.180733-90.pom
projectA-0.0.7-20120712.180733-90.pom.md5
projectA-0.0.7-20120712.180733-90.pom.sha1
ここに興味深い部分があります。ローカルの.m2/リポジトリからprojectAを削除すると、「mvn compile -U」を実行しても、18:07バージョンではなく08:49バージョンが取得されます。これは、MavenまたはArchivaのいずれかが、最新のスナップショットではなく、その日の最初のスナップショットを解決していることを意味します。 それはなぜですか、そしてどうすればこれを解決できますか?
[1]:
<dependencies>
<dependency>
<groupId>com.projectA</groupId>
<artifactId>projectA-api</artifactId>
<version>${project.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.projectA</groupId>
<artifactId>projectA-core</artifactId>
<version>${project.version}</version>
<type>jar</type>
<scope>runtime</scope>
</dependency>
</dependencies>