maven是开源的项目构建工具。
nexus可以用来搭建maven私服。
checksum(校验和):用于校验数据的完整性和准确性。
maven nexus中可以查看构件的Checksums:SHA1 checksum和MD5 checksum。
以spring-jdbc-4.0.0.RELEASE.jar为例说明,其maven dependency如下:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
spring-jdbc-4.0.0.RELEASE.jar的Artifact Information如下图:
由上图可以看出
Checksums分别有SHA1和MD5这两种哈希(Hash)加密的校验和(checksum):
SHA1 checksum(40个字符)为: d169c669b85f26f06c5dedb19bfdd169e4e38c3a
MD5 checksum(32个字符)为: 8a5d45e8bf5b05a425fef45069ed5d3c
在linux上,可以通过sha1sum和md5sum命令生成校验和。
以linux服务器的本地maven仓库中spring-jdbc-4.0.0.RELEASE.jar为例说明:
由上图可以看出:
1、spring-jdbc-4.0.0.RELEASE.jar.sha1文件中的值与nexus上的SHA1 checksum一致;
2、对spring-jdbc-4.0.0.RELEASE.jar用md5sum命令获得的MD5 checksum也与nexus上的MD5 checksum一致;
3、对spring-jdbc-4.0.0.RELEASE.jar用sha1sum命令获得的SHA1 checksum也与nexus上的SHA1 checksum一致;
上面每条都证明spring-jdbc-4.0.0.RELEASE.jar是完整并准确的。
maven hosted(宿主)类型仓库常用来部署组织内部的或第三方的构件。
nexus内置的hosted 类型的仓库有:Releases、Snapshots和3rd party:
Releases: 一个策略为Release的宿主类型仓库,用来部署组织内部的发布版本构件;
Snapshots: 一个策略为Snapshot的宿主类型仓库,用来部署组织内部的快照版本构件;
3rd party: 一个策略为Release的宿主类型仓库,用来部署无法从公共仓库获得的第三方发布版本构件。
如果它们的
Deployment Policy设置为Allown Redeploy,则可以覆盖部署构件;
这样,假设重新部署了修改过的构件,则它的checksums也随之发生变化,
可以根据checksums来判断本地maven仓库的缓存是否与maven私服上的构件一致。
此外,maven nexus可用
SHA1 checksum进行搜索:
点击左侧的导航栏的Advanced Search(高级搜索),在下拉框中选择Checksum Search(校验码搜索)
下面通过spring-jdbc-4.0.0.RELEASE.jar.sha1的内容在
开源中国maven库进行搜索,结果如下图:
在maven中央仓库(Central Repository)搜索,结果如下图: