maven 私服搭建(docker)
**********************
相关操作
下载镜像
docker pull sonatype/nexus3
创建容器
docker run -it -d -p 8081:8081 --name nexus sonatype/nexus3
默认登录名:admin
进入容器、查看密码:cat /nexus-data/admin.password
[root@centos ~]# docker exec -it nexus bash
bash-4.4$ cat /nexus-data/admin.password
f835afda-c2f2-49ad-bb2b-f21a90fe8787bash-4.4$ exit
#初始密码:f835afda-c2f2-49ad-bb2b-f21a90fe8787
说明:用户admin登录设置密码后,admin.password文件会消失
*****************
用户操作
创建用户
查看用户
*****************
创建仓库
maven2(hosted):宿主仓库,type有Release、Snapshot、Mixed,用于存储上传的私有jar包
maven2(proxy):代理仓库,如代理cengtral仓库,阿里仓库
maven2(group):仓库组,可包含宿主仓库、代理仓库
*****************
查看创建的仓库
lihu-group:仓库组,包含lihu-alimaven、lihu-releases、lihu-snapshots
lihu-alimaven:代理阿里仓库
lihu-releases:存储release版本的jar包
lihu-snapshots:存储snapshot版本的jar包
**********************
使用测试
*****************
settings.xml
添加server:设置私服用户名、密码
<servers>
<server>
<id>lihu</id>
<username>lihu</username>
<password>123456</password>
</server>
</servers>
*****************
pom.xml
添加distributionManagement:id对应server的id、url为仓库地址
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
<skipTests>true</skipTests>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<finalName>hello-world</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<distributionManagement> //jar 包发布的仓库
<repository>
<id>lihu</id>
<url>http://192.168.57.120:8081/repository/lihu-releases/</url>
</repository> //release 仓库
<snapshotRepository>
<id>lihu</id>
<url>http://192.168.57.120:8081/repository/lihu-snapshots/</url>
</snapshotRepository> //snapshot 仓库
</distributionManagement>
</project>
*****************
执行 deploy
*****************
查看上传的jar包
说明:nexus大小写敏感,release / RELEASE、snapshot / SHAPSHOT 视作不同版本
小写的snapshot上传到release仓库
相同版本的SNAPSHOT可以重复上传,相同版本的RELEASE不能重复上传
*****************
加载私服
pom.xml添加repositories
<repositories>
<repository>
<id>lihu</id>
<url>http://192.168.57.120:8081/repository/lihu-releases/</url>
</repository>
</repositories>