安装
需要jdk8
- 解压后,进入目录
/opt/nexus-3.18.0-01/bin,运行./nexus run即可(window执行./nexus.exe /run); - 可以把nexus安装成window服务:
/nexus.ext /install,然后使用net start nexus启用 - 防火墙开通8081端口;
- 查看默认密码(账号admin):sonatype-work/nexus3/admin.password,该文件之后运行后才会出现,且仅此一次;
基于docker
# 查看
docker search nexus3
# 拉取
docker pull sonatype/nexus3
# 准备目录
mkdir /opt/nexus/data
chmod 777 -R /opt/nexus
# 运行
docker run -d --name nexus3 -p 8081:8081 --restart always -v /opt/nexus/data:/nexus-data sonatype/nexus3
# 查看日志,ctrl+c 退出
docker logs -f nexus3
# 查看密码
cat /opt/nexus/data/admin-password
# 登录
192.168.10.101:8081
仓库配置
阿里云仓库: maven.aliyun.com/repository/…
官方云仓库:repo.maven.apache.org/maven2
- 新建maven-proxy仓库,并设置阿里云仓库地址
- 修改maven-public,把新建的仓库添加进去
Settings配置
文件搜索顺序:
local_repo > settings_profile_repo > pom_profile_repo > pom_repositories > settings_mirror > central
- 添加server账号配置
<server>
<id>maven-releases</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>maven-public</id>
<username>admin</username>
<password>123456</password>
</server>
- 添加mirror配置
<mirror>
<!--id 和 server的id要一致-->
<id>maven-public</id>
<mirrorOf>central</mirrorOf>
<name>dy maven</name>
<url>http://192.168.10.101:8081/repository/maven-public</url>
</mirror>
Pom设置
用于部署到远程仓库。
<distributionManagement>
<repository>
<id>maven-releases</id>
<name>maven-releases</name>
<url>http://192.168.10.101:8081/repository/maven-releases</url>
<layout>default</layout>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<name>maven-snapshots</name>
<url>http://192.168.10.101:8081/repository/maven-snapshots</url>
<layout>default</layout>
</snapshotRepository>
</distributionManagement>
如果项目版本是1.0-SNAPSHOT会默认发布到snapshot仓库;
如果是1.0,会默认发布到release仓库;
为了减少发布时手动修改版本,可结合profiles设定:
<version>${project.release.version}</version>
<properties>
<project.release.version>0.1-SNAPSHOT</project.release.version>
</properties>
<profiles>
<profile>
<id>release</id>
<properties>
<project.release.version>0.1</project.release.version>
</properties>
</profile>
</profiles>
执行maven时,如果选择release(或执行mvn deploy -P release),则版本号会自动替换并发布到对应的仓库。