有些人建议(例如:@carlspring)“最新”实际上并不指向可用的最高版本,考虑到发布和快照;他们建议是最近部署的,但我不同意。这就是 Sonatype Nexus™ 2.11.2-0 发生的情况:
假设开始:
<metadata modelVersion="1.1.0">
<groupId>com.acme</groupId>
<artifactId>versioningtest</artifactId>
<versioning>
<latest>1.0.3-SNAPSHOT</latest>
<release>1.0.1</release>
<versions>
<version>1.0.0-SNAPSHOT</version>
<version>1.0.0</version>
<version>1.0.1-SNAPSHOT</version>
<version>1.0.1</version>
<version>1.0.2-SNAPSHOT</version>
<version>1.0.3-SNAPSHOT</version>
</versions>
<lastUpdated>20150928081006</lastUpdated>
</versioning>
</metadata>
(A) 发布一个新的 1.0.2-SNAPSHOT 只会增加“lastupdated”时间戳,它不会改变“latest”。
现在发布 1.0.3:
<metadata>
<groupId>com.acme</groupId>
<artifactId>versioningtest</artifactId>
<versioning>
<latest>1.0.3</latest>
<release>1.0.3</release>
<versions>
<version>1.0.0-SNAPSHOT</version>
<version>1.0.0</version>
<version>1.0.1-SNAPSHOT</version>
<version>1.0.1</version>
<version>1.0.2-SNAPSHOT</version>
<version>1.0.3-SNAPSHOT</version>
<version>1.0.3</version>
</versions>
<lastUpdated>20150928081408</lastUpdated>
</versioning>
</metadata>
(B) 从这里开始,发布一个新的 1.0.2-SNAPSHOT 只会增加“lastupdated”时间戳,它不会改变“latest”。此外,发布 1.0.2 只会增加“lastupdated”时间戳,它不会更改“latest”:
<metadata>
<groupId>com.acme</groupId>
<artifactId>versioningtest</artifactId>
<versioning>
<latest>1.0.3</latest>
<release>1.0.3</release>
<versions>
<version>1.0.0-SNAPSHOT</version>
<version>1.0.0</version>
<version>1.0.1-SNAPSHOT</version>
<version>1.0.1</version>
<version>1.0.2-SNAPSHOT</version>
<version>1.0.2</version>
<version>1.0.3-SNAPSHOT</version>
<version>1.0.3</version>
</versions>
<lastUpdated>20150928081620</lastUpdated>
</versioning>
</metadata>
所以总而言之:
因此,考虑到版本和快照,Sonatype Nexus™ 2.11.2-0,“最新”指向可用的最高版本。
量子点