単純なMavenリポジトリを内部でホストしていますが、Mavenはそこから新しいスナップショットバージョンを取得していないようです。ローカルのMavenリポジトリは、settings.xmlで次のように構成されます。
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
これを「mvn-U」のようなものと組み合わせると、該当する場合、mavenが最新のスナップショットバージョンを取得することを期待します。私が収集すると、mavenはmetadata.xmlの最終変更をチェックし、そこからスナップショットが更新されているかどうかを判断します。ただし、最後に更新されたのはどれかは完全にはわかりません。たとえば、次のmetadata.xmlを取り上げます。
<metadata>
<groupId>com.example</groupId>
<artifactId>example-test</artifactId>
<version>1.0-SNAPSHOT</version>
<versioning>
<versions>
<version>1.0-SNAPSHOT</version>
</versions>
<snapshot>
<timestamp>20120427.113221</timestamp>
<buildNumber>1335519141810</buildNumber>
</snapshot>
<lastUpdated>20120427113221</lastUpdated>
</versioning>
MavenはlastUpdatedタグを使用しますか?「最後に変更された」httpヘッダー?snapshot.timestampタグまたは他の何かまだ?
とにかく、私たちが見ている動作は、実際に最新のmetadata.xmlをダウンロードしますが、そこで停止し、スナップショット自体を再ダウンロードしないというものです。
編集:Maven2でオプションだった独自のスナップショット機能がMaven3で必須になっていることに気づきました。Mavenが単に更新されたバージョンを検出していない可能性はありますか?今すぐモジュールからmaven-metadata.xmlをチェックしてください:
<metadata modelVersion="1.1.0">
<groupId>com.example</groupId>
<artifactId>example-test</artifactId>
<version>1.0-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20120607.154257</timestamp>
<buildNumber>1339076577</buildNumber>
</snapshot>
<lastUpdated>20120607154257</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>jar</extension>
<value>1.0-20120607.154257-1339076577</value>
<updated>20120607154257</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
Mavenはビルド番号をチェックしますか?snapshotVersionの「updated」タグ?