【发布时间】:2012-06-11 05:43:49
【问题描述】:
我们在内部托管了一个简单的 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,但会停在那里,它不会重新下载快照本身。
编辑:我注意到在 maven 2 中可选的独特快照功能在 maven 3 中已成为必需。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 的“更新”标签?
【问题讨论】:
标签: java maven maven-metadata