docker pull sonatype/nexus3:3.86.2
docker run -d --name nexus \
--restart always \
-p 8887:8081 \
-v /data/nexus/data:/nexus-data \
sonatype/nexus3:3.86.2
WARN [jetty-main-1] org.sonatype.nexus.util.LockFile - Failed to write lock file
java.io.FileNotFoundException: /sonatype-work/nexus.lock (Permission denied)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(RandomAccessFile.java:316)
at java.io.RandomAccessFile.<init>(RandomAccessFile.java:243)
at org.sonatype.nexus.util.LockFile.lock(LockFile.java:92)
授权挂载目录权限,重新启动容器即可
chown -R 200 /data/nexus/data
test,并授予浏览仓库,部署jar的权限
浏览仓库权限

部署相关权限

上传组件(Docker 等)的权限

test
这里我创建了2个仓库:zlhn-snapshots, zlhn-releases,仓库类型均选择hosted,格式 maven2:

三种仓库类型的作用
proxy:代理仓库,镜像其他的仓库,如 Maven 中央仓库
hosted:宿主仓库,用于存放我们上传的包
group:仓库组,联合了多个仓库,下载时指定仓库组即可,无需指定具体的仓库
maven-public
zlhn-snapshots, zlhn-releases两个仓库的权限授予给创建的test角色
配置maven从nexus下载构建有两种方式:①、pom.xml方式。②、镜像方式。
<repositories>
<repository>
<id>maven-nexus</id>
<url>http://172.17.10.211:8887/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
注意:url地址对应到nexus上的哪个仓库组,因为只有仓库组提供包,我们可以在nexus上面复制地址,如下:

<server>
<id>maven-nexus</id>
<username>test</username>
<password>123456</password>
</server>
注意:上面
元素的值和pom.xml中的 值必须一致。 元素中的username和password根据自己去设置
<mirrors>
<mirror>
<id>mirror-nexus</id>
<name>Nexus mirror</name>
<url>http://172.17.10.211:8887/repository/maven-public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
注意:上面mirrorOF配置的*,说明所有远程仓库都通过该镜像下载构件。
<server>
<id>mirror-nexus</id>
<username>test</username>
<password>123456</password>
</server>
id元素与上面setting.xml中配置的id同样必须相同。
pom.xml 中配置"deploy"<servers>
<server>
<id>zlhn-releases</id>
<username>test</username>
<password>123456</password>
</server>
<server>
<id>zlhn-snapshots</id>
<username>test</username>
<password>123456</password>
</server>
</servers>
pom.xml中新增如下配置 <distributionManagement>
<repository>
<id>zlhn-releases</id>
<url>http://172.17.10.211:8887/repository/zlhn-releases/</url>
</repository>
<snapshotRepository>
<id>zlhn-snapshots</id>
<url>http://172.17.10.211:8887/repository/zlhn-snapshots/</url>
</snapshotRepository>
</distributionManagement>