我们在内部托管了一个简单的 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 的“更新”标签?