(十二)基于Docker搭建Maven私服

版权声明:本文为博主原创文章,转载请注明出处! https://blog.csdn.net/IT_hejinrong/article/details/89925357

一. 什么是Maven私服环境

1、一些无法从外部仓库下载的构件,例如内部的项目还能部署到私服上,以便供其他依赖项目使用。
2、为了节省带宽和时间,在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。当本地Maven项目需要下载构件时,先去私服请求,如果私服没有,则再去远程仓库请求,从远程仓库下载构件后,把构件缓存在私服上。这样,及时暂时没有Internet链接,由于私服已经缓存了大量构件,整个项目还是可以正常使用的。同时,也降低了中央仓库的负荷。
在这里插入图片描述

二. 什么场景用Maven私服

在实际开发中,项目中可能会用到第三方的jar、内部通讯的服务接口都会打入到公司的私服中。

三. Maven私服搭建

1.下载一个nexus3的镜像

docker pull sonatype/nexus3

2.将容器内部/var/nexus-data挂载到主机/root/nexus-data目录。

docker run -d -p 8081:8081 --name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3

关闭防火墙,访问http://ip:8081
Maven私服启动容器稍微比较慢,等待1分钟即可。

默认登陆账号 admin admin123
在这里插入图片描述

四. 创建Maven私服仓库

4.1 创建私服仓库

创建仓库,点击Create repository,然后选择maven2(hosted)然后输入仓库名称(hejr-release)。在version policy中选择这个仓库的类型,这里选择release,在Deployment policy中选择Allow redeploy(这个很重要)
在这里插入图片描述

在这里插入图片描述

4.2 创建私服账号

点击左侧菜单栏的Users菜单,然后点击Create local user.我这里创建了一个用户,账号密码都是:hejinrong
hejr-release
在这里插入图片描述

五. 本地settings.xml配置

找到,在里面追加如下内容:

	<server>
        <id>hejr</id>
        <username>hejinrong</username>
        <password>hejinrong</password>
     </server>

六. Maven工程打包到私服

在maven工程的pom文件中,添加如下内容,执行deploy即可。

	<!--注意限定版本一定为RELEASE,因为上传的对应仓库的存储类型为RELEASE -->
	<!--指定仓库地址 -->
	<distributionManagement>
		<repository>
			<!--此名称要和.m2/settings.xml中设置的ID一致 -->
			<id>hejr</id>
			<url>http://121.43.187.80:8081/repository/hejr-release/</url>
		</repository>
	</distributionManagement>

	<build>
		<plugins>
			<!--发布代码Jar插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>2.7</version>
			</plugin>
			<!--发布源码插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.2.1</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

由于我们创建的是release,所以version这里必须是release的,如下:
在这里插入图片描述
在这里插入图片描述

七. 引用私服jar

在要引用的工程pom中添加如下内容即可:

<repositories>
		<repository>
			<id>hejr</id>
			<url>http://121.43.187.80:8081/repository/hejr-release/</url>
		</repository>
	</repositories>

八. 如何判断文件是否发生改变

如何知道一个文件是否改变了呢?当然是用比较文件hash值的方法,文件hash又叫文件签名,文件中哪怕一个bit位被改变了,文件hash就会不同。比较常用的文件hash算法有MD5和SHA-1。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/IT_hejinrong/article/details/89925357
今日推荐