私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。
前言
私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。 Maven 私服应用场景 :
- 缓存企业级 jar
- 微服务开发中,实现对微服务接口实现发布与调用。
- 正常在微服务开发中,不会直接引入到其他接口源码项目。引入接口 jar 包进行调用。
流程
下载&&启动
- Docker 拉取一个
nexus3
的镜像
$ docker pull sonatype/nexus3
- 将容器内部
/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
- 关闭防火墙,根据
服务器ip
访问 http://ip:8081
$ systemctl stop firewalld.service
Maven 私服
启动容器
稍微比较慢,等待 1 分钟即可。
登陆
使用默认账号密码 admin admin123 登陆时,发现登陆不了。这是更改这种 admin123固定密码
登陆方式。需要进入容器里面寻找密码。
- 查看进行的容器,并进入容器
$ docker ps
CONTAINER ID IMAGE
9c9b18024931 sonatype/nexus3
$ docker exec -it 9c9b18024931 bash
- 查看密码(
bash-4.4$
前面的字符串即是密码
)
bash-4.4$ cat /nexus-data/admin.password
3rhu2s4g-34d5-34d5-fs9d-we2fh8242wh3bash-4.4$
#退出容器用 exit 命令
- 在登陆界面进行登陆,再根据提示重置密码即可
创建 Maven 私服仓库
- 创建私服仓库
创建仓库,点击
Create repository
,然后选择maven2(hosted)
然后输入仓库名称(test-release)
。在version policy
中选择这个仓库的类型,这里选择release
,在Deployment policy
中选择Allow redeploy
(这个很重要). - 创建私服账号
点击左侧菜单栏的
Users
菜单,然后点击Create local user
.我这里创建了一个用户,账号密码都是:testUser
testUser-release
- 修改本地 settings.xml```xml
testUser testUser testUser
4. 创建一个Maven工程
> **`注意`** 限定版本一定为RELEASE,因为上传的对应仓库的存储类型为`RELEASE`
<!--指定仓库地址 -->
<distributionManagement>
<repository>
<!--此名称要和.m2/settings.xml中设置的ID一致 -->
<id>testUser</id>
<url>http://192.168.162.22:8081/repository/testUser-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>
1. 发布`jar包`到Maven私服
```sh
$ mvn deploy