本文是针对 Sonatype Nexus Repository OSS MacOS 绿色版的安装指引。
官方最新版下载地址为:https://www.sonatype.com/nexus-repository-oss。
历史版本下载地址为:https://help.sonatype.com/repomanager3/download/download-archives---repository-manager-3
当前(2020-02-02)最新版为 3.20.1-01,MacOS 版的直接下载地址为:https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.20.1-01-mac.tgz
官网下载速度在国内非常的慢,已下载缓存到网盘: https://pan.baidu.com/s/1QeW-RH5YtV8MV3gkDqYKVg 提取码: v2mi
。
一)nexus 安装步骤
-
解压下载的
nexus-3.20.1-01-mac.tgz
到目录/path/to/nexus/
,得到如下目录结构:/path/to/nexus/ |--nexus-3.20.1-01 | |--bin/ | | |--contrib/ | | |--nexus | | |--nexus.rc | | |--nexus.vmoptions | |--deploy/... | |--etc/... | |--lib/... | |--public/... | |--system/... | |--... |--sonatype-work/ | |--nexus3/ | | |--log/ | | |--orient/ | | | |--plugins/ | | | | |--studio.zip | | |--tmp/ | | |--clean_cache
目录
/path/to/nexus/
需根据自身需要设置为实际的磁盘目录,下同。 -
在与
nexus-3.20.1-01
同级目录下创建软链接nexus-latest
并链接到此目录以方便日后的升级$ ln -s /path/to/nexus/nexus-3.20.1-01 /path/to/nexus/nexus-latest
-
将
/path/to/nexus/nexus-latest/bin
添加到系统环境变量PATH
内# 执行如下命令修改 ~/.profile 文件 $ vi ~/.profile # 往 ~/.profile 文件添加如下两行 export NEXUS_HOME=/path/to/nexus/nexus-latest PATH=$PATH:$NEXUS_HOME/bin # 执行如下命令使添加到 ~/.profile 文件的配置生效 $ source ~/.profile
-
执行
nexus start
启动 nexus 服务$ nexus start Starting nexus
执行
nexus help
命令可查看可用的命令清单:$ nexus help Usage: /path/to/nexus/nexus-latest/bin/nexus {start|stop|run|run-redirect|status|restart|force-reload}
启动后访问 http://localhost:8081 打开 nexus 主页:
点击右上角的
Sign in
可以 admin 账号登陆进行相关配置,首次点击Sign in
,会提示管理员 admin 账号的初始密码已自动生成在文件sonatype-work/nexus3/admin.password
内,以此密码登陆后会继续弹出对话框要求修改为新的密码:
之后会再弹出一个对话框设置是否允许匿名浏览、下载仓库中的包:(建议勾选)
-
添加第三方 maven 仓库的代理配置到 nexus
以管理员账号 admin 登陆 nexus,打开 Repositories 配置界面,
默认情况下 nexus 仅配置了 maven 中心仓库的代理 maven-central。
maven-public 为所有代理仓库的自定义汇集,用于控制 nexus 按特定顺序分别从配置的第三方仓库中下载依赖包。
按照个人习惯,我一共配置了如下几个第三方 maven 仓库的代理配置:- maven-central > https://repo1.maven.org/maven2/ - 内置配置,国内使用速度慢
- maven-jcenter > https://jcenter.bintray.com - 国内使用速度慢
- maven-aliyun > https://maven.aliyun.com/nexus/content/groups/public/ - 国内使用速度快
- maven-spring-milestone > https://repo.spring.io/milestone - spring的里程碑版本专用
- maven-activiti > https://maven.alfresco.com/nexus/content/repositories/activiti/ - 早期的 activiti 5.9 专用
详细可参考官方配置文档 《Repository Management》
-
【可选配置】自定义 nexus 相关配置参数(特殊情况才需要修改,一般不建议修改):
创建文件/path/to/nexus/sonatype-work/nexus3/etc/nexus.properties
,添加如下配置:# 自定义 web 访问端口 application-port=8081 # 自定义 Web 上下文路径 (以 / 开头,不要以 / 结尾) nexus-context-path=/
参考
/path/to/nexus/nexus-latest/etc/nexus-default.properties
文件内的配置参数进行配置即可。如果要迁移数据目录
sonatype-work/nexus3
到其它地方,需要修改文件nexus-latest/bin/nexus.vmoptions
,这个不建议修改。注:配置文件修改后必须重新启动 nexus 服务才能生效:
$ nexus restart
-
【可选配置】升级 nexus
- 执行
nexus stop
命令停止当前已启动的 nexus 服务$ nexus stop Shutting down nexus Stopped.
- 下载最新版的 nexus 包,解压后仅保留
nexus-3.{new-version}
目录,并移动到/path/to/nexus/
目录下,然后重新创建软链接 nexus-latest,指向新版本的 nexus 目录即可:$ cd /path/to/nexus $ rm nexus-latest $ ln -s /path/to/nexus/nexus-3.{new-version} /path/to/nexus/nexus-latest
- 执行
nexus start
重新启动 nexus 服务。
以上升级方法适用于从 nexus-3.1.0+ 升级到 nexus3 的最新版本,官方文档为《Upgrading Nexus Repository Manager 3.1.0 and Newer》
- 执行
较低版本 nexus3 的默认管理员账号是 admin
,密码是 admin123
(如 nexus-3.14),如果从较低版本升级到当前最新版(如 nexus-3.20),使用 admin 账号首次登陆后,系统会提示你更新密码一次及设置是否允许匿名浏览、下载仓库中的包。类似于上面步骤 4 的相关截图。
二)maven 相关配置
- 配置 maven 使用 nexus 代理所有依赖的下载:
修改 maven 的用户配置文件~/.m2/settings.xml
:<settings> <mirrors> <mirror> <!--This sends everything else to maven-public --> <id>nexus</id> <mirrorOf>*</mirrorOf> <!-- http://[ip]:[port][/nexus-context-path]/repository/[public-repository-name] --> <url>http://localhost:8081/repository/maven-public</url> </mirror> </mirrors> <profiles> <profile> <id>nexus</id> <!-- Enable snapshots for the built in central repo to direct all requests to nexus via the mirror --> <repositories> <repository> <id>central</id> <url>http://central</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>http://central</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> <activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles> </settings>
详细可参考官方指引文档 《Proxying Maven and npm Quick Start》
- 【可选配置】配置将 maven 项目打包发布到此 nexus 私服:
- 修改
~/.m2/settings.xml
文件:<settings> ... <servers> <!-- account and password for deploy to nexus --> <server> <id>lan</id> <username>admin</username> <password>admin123</password> </server> </servers> <profiles> <profile> <id>lan</id> <properties> <lan-release-url>http://localhost:8081/repository/maven-releases</lan-release-url> <lan-snapshot-url>http://localhost:8081/repository/maven-snapshots</lan-snapshot-url> </properties> </profile> </profiles> </settings>
- 修改 maven 项目的
pom.xml
文件,添加如下配置:<project> <profiles> <!-- configuration for deploy to nexus repository --> <profile> <id>lan</id> <distributionManagement> <repository> <id>lan</id> <url>${lan-release-url}</url> </repository> <snapshotRepository> <id>lan</id> <url>${lan-snapshot-url}</url> </snapshotRepository> </distributionManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> </plugin> </plugins> </build> </profile> </profiles> </project>
命令行执行
mvn clean deploy -P lan
即可将项目打包发布到 nexus 私服。
- 修改