在 Ubuntu 20.04 上安装 Nexus Repository Manager 是一个直接的过程,可以通过以下几个步骤来完成。Nexus Repository Manager 是一个流行的仓库管理工具,用于存储和分发软件包,例如 Maven、npm 和 Docker 镜像等。
一、安装Nexus
1、 安装 Java
Nexus 需要 Java 运行,所以第一步是确保你的系统上安装了 Java。Nexus 通常需要 Java 8 或更高版本。你可以通过运行以下命令来安装 OpenJDK 11:
sudo apt update
sudo apt install openjdk-11-jdk
安装后,你可以通过运行以下命令来验证 Java 是否安装成功:
java -version
2、 下载 Nexus
你可以从 Sonatype 网站下载最新的 Nexus Repository Manager。选择 Community Edition 的 tar.gz 文件。你可以使用 wget
命令来下载:
cd /opt
sudo wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
3、 解压 Nexus
下载完成后,使用以下命令解压缩文件:
sudo tar -xvzf latest-unix.tar.gz
解压后,会创建一个新的目录,例如 nexus-3.x.x-xx
和 sonatype-work
。可以重命名这个目录以便更易于管理:
sudo mv nexus-3.x.x-xx nexus
4、创建 Nexus 用户
为了安全和效率的考虑,最好为运行 Nexus 创建一个专用用户:
sudo adduser nexus
sudo chown -R nexus:nexus /opt/nexus
sudo chown -R nexus:nexus /opt/sonatype-work
5 、配置和启动 Nexus
编辑 Nexus 的启动脚本配置,使其以 nexus
用户身份运行。打开 /opt/nexus/bin/nexus.rc
文件,设置运行用户:
sudo nano /opt/nexus/bin/nexus.rc
在文件中添加:
run_as_user="nexus"
接下来,设置 Nexus 作为服务启动。创建一个 systemd 服务文件:
sudo nano /etc/systemd/system/nexus.service
在文件中添加以下内容:
[Unit]
Description=nexus service
After=network.target
[Service]
Type=forking
User=nexus
ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop
User=nexus
Restart=on-abort
[Install]
WantedBy=multi-user.target
保存并关闭文件。然后,启用并启动 Nexus 服务:
sudo systemctl enable nexus
sudo systemctl start nexus
6、 访问 Nexus
Nexus 启动后,默认在 8081 端口监听。你可以通过浏览器访问 Nexus:
http://your-server-ip:8081
初次访问需要完成设置向导,设置管理员密码和相关配置。
以上就是在 Ubuntu 20.04 上安装 Nexus Repository Manager 的步骤。确保你的服务器配置足以支持 Nexus 的运行,尤其是有足够的内存和 CPU 资源。
二、配置Maven仓库
在安装完成 Nexus Repository Manager 后,配置 Maven 仓库是一个常见的步骤,以便在 Maven 项目中使用 Nexus 作为依赖管理和仓库托管的解决方案。以下是配置 Maven 仓库的基本步骤:
1、 登录 Nexus
首先,通过浏览器访问 Nexus 界面:
http://your-server-ip:8081
使用默认的管理员账号登录(通常为 admin
),密码在初始安装完成后通常会被提示修改。
2、 创建 Maven 仓库
-
创建 hosted 仓库(用于存储内部产生的构件):
- 在 Nexus 界面上,点击左侧的 "Repositories"。
- 点击 “Create repository” 按钮。
- 选择 “maven2 (hosted)”。
- 填写仓库名称,例如
maven-releases
。 - 在 Version policy 中选择
Release
。 - 修改其他设置(如需要),然后点击 “Create repository” 保存。
-
创建 proxy 仓库(用于代理远程仓库,如 Maven Central):
- 重复上述步骤,但选择 “maven2 (proxy)”。
- 填写仓库名称,例如
maven-central
。 - 在 Remote storage 中填写远程仓库地址,例如 Maven Central 的地址
https://repo1.maven.org/maven2/
。 - 在 Version policy 中选择
Release
。 - 点击 “Create repository”。
-
创建 group 仓库(将多个仓库组合在一起):
- 重复上述步骤,但选择 “maven2 (group)”。
- 填写仓库名称,例如
maven-public
。 - 在成员仓库部分,添加之前创建的
maven-releases
和maven-central
到列表中。 - 点击 “Create repository”。
3、 配置 Maven 使用 Nexus
为了使 Maven 项目能使用 Nexus 仓库,需要在 Maven 的配置文件 settings.xml
中指定仓库。这个文件通常位于 ~/.m2/
文件夹内。
- 编辑 settings.xml:
- 打开或创建
~/.m2/settings.xml
文件。 - 添加以下配置以使用 Nexus:
- 打开或创建
<settings>
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://your-server-ip:8081/repository/maven-public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://your-server-ip:8081/repository/maven-public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://your-server-ip:8081/repository/maven-public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
这里,url
需要替换成您配置的 Nexus 服务器地址。确保 maven-public
是您在 Nexus 中配置的 Maven 组仓库的名称。
4、 测试配置
- 清理本地 Maven 仓库(可选,用于测试):
- 运行
mvn -U clean install
来更新所有依赖。
- 运行
- 检查构建是否成功,并确认构建过程中的依赖是通过 Nexus 下载的。
通过这些步骤,您的 Nexus 就配置好了 Maven 仓库,可以开始在项目中使用 Nexus 来管理和
提供 Maven 依赖了。
5、 使用 Nexus 进行项目构建
当 Nexus 和 Maven 配置完成后,您可以开始在项目中使用 Nexus 管理的 Maven 仓库来构建项目。这不仅可以提高依赖管理的效率,还可以确保团队成员之间的依赖版本一致性。
-
在项目的
pom.xml
中添加依赖:- 您可以像往常一样添加 Maven 依赖。当您运行 Maven 命令时,Maven 会首先检查本地仓库,如果找不到所需的依赖,会通过配置的 Nexus 仓库去下载。
-
执行 Maven 命令:
- 使用常规 Maven 命令来构建您的项目,例如:
mvn clean install
- Maven 将解析
settings.xml
中的配置,并通过 Nexus 仓库来解决依赖。
- 使用常规 Maven 命令来构建您的项目,例如:
6、 管理 Nexus
在 Nexus 成功配置并投入使用后,您可能还需要进行一些常规的管理工作,例如:
-
管理用户和访问控制:
- Nexus 提供了强大的安全和访问控制选项,您可以创建多个用户账户,并为不同的团队或个人分配不同的权限。
-
监视仓库健康:
- Nexus 提供了监控和日志记录功能,这可以帮助您跟踪仓库的状态和性能。您可以定期检查这些日志来确保一切正常。
-
备份重要数据:
- 定期备份您的 Nexus 数据是非常重要的。这包括仓库中的数据和 Nexus 的配置。您可以使用自动化脚本来定期备份这些数据到一个安全的位置。
-
更新和维护:
- 保持 Nexus Repository Manager 的更新是保证系统安全和高效的重要部分。定期检查更新,并按计划执行更新。
通过以上步骤,您已经成功设置了 Nexus 与 Maven 的整合,为您的开发工作提供了一个强大的工具。这将有助于提高代码的可重用性,加快开发过程,并确保项目依赖的一致性和可控性。