Maven 是一种项目构建管理的工具,可以通过远程仓库下载自己项目所要依赖的jar文件等,如果是个人项目,一般只需要选择远程仓库获取相关的依赖包即可,如阿里云的镜像仓库,但如果是公司的项目,一般都会搭建内部自己的maven私服仓库,存放一些公司内部的jar文件等,本文主要介绍如何搭建一个自己的maven私服仓库

Docker 方式安装

获取镜像:

docker pull sonatype/nexus3

创建一个供启动挂载的文件夹:

mkdir /some/dir/nexus-data && chown -R 200 /some/dir/nexus-data

创建容器且挂载:(name参数前是2个中划线)

docker run -d -p 80:8081 –name nexus -v /some/dir/nexus-data:/nexus-data sonatype/nexus3

一、访问及配置Nexus3

1)打开浏览器访问http://主机ip,显示如下则表示安装成功

2)默认的用户名:admin,密码:admin123,登陆后可创建新的用户以及仓库,这里简单解释下,nexus仓库类型常见的有以下3种

  • group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请
  • hosted 宿主仓库:主要用于发布内部项目构件或第三方的项目构件(如购买商业的构件) 以及无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)
  • proxy 代理仓库:代理公共的远程仓库

3)设置proxy代理仓库代理阿里云镜像地址,这样当我们使用此私服找不到jar文件时,nexus3会到阿里云远程镜像仓库寻找,若有则同步到nexus3仓库以及本地

阿里maven镜像地址: http://maven.aliyun.com/nexus/content/groups/public

二、新建个人的Snapshot和Release仓库

Snapshot:快照版本仓库,同一个版本号如1.2.0-SNAPSHOT的应用,每次deploy到快照仓库的时候,都会在版本号后面根据时间戳记录一个小后缀版本号,一般在开发过程中使用,所以里面的版本也叫非稳定版本

Release:发布版本仓库,对于同一个版本号1.2.0-RELEASE,有唯一一个精确的版本号,不会带小后缀,一般是应用发布的时候使用,所以里面的版本也叫稳定版本

设置===>Repositories===>Create repository(选择hosted类型)

输入自定义仓库名,设置仓库类型,以及是否允许deploy

三、安装maven后的Settings.xml文件配置

经过第一和第二步,nexus3的私人maven仓库已经创建好,分别为一个快照版仓库和发布版仓库,接着是在我们自己开发的电脑中安装maven工具后,找到$MAVEN_HOME/conf/settings.xml文件,配置server标签如下

<server>
	<id>hzkrepo-releases</id>
	<username>nexus3登陆用户名</username>
	<password>nexus3登陆密码</password>
</server>
<server>
	<id>hzkrepo-snapshots</id>
	<username>nexus3登陆用户名</username>
	<password>nexus3登陆密码</password>
</server>

四、项目父pom.xml文件配置

当settings.xml文件配置好后,在项目中如果想用到自己的私服仓库,如部署到自己的私服仓库时,项目的父pom.xml需要配置distributionManagement标签,仓库id标签配置注意需要和setting.xml中配置的server标签的id标签对应

<!--nexus3私服配置-->
<distributionManagement>
	<repository>
		<id>hzkrepo-releases</id>
		<name>nexus-releases</name>
		<url>release仓库url</url>
	</repository>
	<snapshotRepository>
		<id>hzkrepo-snapshots</id>
		<name>nexus-snapshots</name>
		<url>snapshot仓库url</url>
	</snapshotRepository>
</distributionManagement>

五、小结

至此,maven私服的相关基本应用已经可以使用了,后续可以尝试将自己快照版本的应用或者发布版本的应用deploy到私服,然后就可以在控制台看到相关的内容了

发表评论

电子邮件地址不会被公开。