maven如何搭建自己的私服(LINUX版)?
环境准备
-
安装 JDK :确保系统已安装 JDK 8 或更高版本。可以通过以下命令安装 JDK:
-
安装 OpenJDK :
sudo apt update && sudo apt install openjdk-11-jdk
-
安装 Oracle JDK :需要添加第三方仓库,例如 WebUpd8 团队的仓库,不过 Oracle JDK 的安装相对复杂一些,OpenJDK 已经可以满足大多数需求。
-
安装完成后,通过
java -version
命令检查是否安装成功。
-
-
安装 Maven :可以通过以下命令安装 Maven(但 Maven 私服搭建更多依赖于 Nexus,Maven 本身主要用于项目本地构建,安装 Maven 主要是方便后续项目开发使用):
-
sudo apt update && sudo apt install maven
-
安装完成后,通过
mvn -version
命令检查是否安装成功。
-
安装 Nexus
-
下载 Nexus :从Nexus 官方网站下载适用于 Linux 的 Nexus 安装包,通常是 tar.gz 格式。
-
解压安装包 :使用以下命令解压安装包到指定目录,例如
/opt/nexus
:-
sudo tar -zxvf nexus-3.x.x-unix.tar.gz -C /opt/
-
-
配置运行用户 :默认情况下 Nexus 不能用 root 用户启动,需要创建一个用户来专门运行 Nexus:
-
创建用户并设置密码:
sudo useradd nexus && sudo passwd nexus
-
修改
/etc/security/limits.conf
文件,在文件末尾加上nexus - nofile 65535
,以提高文件打开数限制。
-
-
修改配置文件 :编辑
/opt/nexus/bin/nexus.rc
文件,设置运行 Nexus 的用户,将RUN_AS_USER=root
改为RUN_AS_USER=nexus
,并确保该用户有权限访问 Nexus 安装目录及其文件。
启动与登录 Nexus
-
启动服务 :进入 Nexus 安装目录的 bin 文件夹,执行以下命令启动 Nexus 服务:
-
sudo ./nexus start
-
默认情况下,Nexus 会监听本地的 8081 端口。
-
-
访问管理界面 :在浏览器中输入
http://<服务器 IP 地址>:8081
访问 Nexus 的管理界面。 -
登录 :首次访问时,默认的用户名是 admin,初始密码可在
/opt/sonatype-work/nexus3/admin.password
文件中找到,登录后建议修改默认密码。
配置 Nexus 仓库
-
创建仓库 :登录 Nexus 管理界面后,可以根据需求创建不同类型的仓库,如 Hosted 类型的仓库用于存储团队内部开发的项目构件,Proxy 类型的仓库代理公共仓库,Group 类型的仓库将多个仓库聚合在一起,方便统一管理和访问。
-
配置仓库 :在创建仓库时,设置仓库的 ID、名称、描述等基本信息,以及存储路径、快照策略等高级配置。
配置 Maven 项目使用私服
-
修改 settings.xml 文件 :在 Maven 的
conf
目录下的settings.xml
文件中,配置私服相关信息:-
在
<servers>
标签中添加私服的认证信息,如:-
<server>
,<id>nexus-releases</id>
,<username>your_username</username>
,<password>your_password</password>
,</server>
-
这里的 id 要与项目
pom.xml
中配置的仓库 id 相对应。
-
-
在
<mirrors>
标签中配置仓库地址,如:-
<mirror>
,<id>nexus</id>
,<mirrorOf>*</mirrorOf>
,<name>Nexus Repository</name>
,<url>http://<服务器 IP 地址>:8081/repository/maven-public/</url>
,</mirror>
-
上述配置表示将所有的仓库请求都指向搭建的 Nexus 私有仓库中的 maven-public 组仓库。
-
-
-
在
<profiles>
标签中配置多仓库使用 :根据需求设置不同仓库的启用状态等。
上传构件至私服
-
手动部署 :可以直接将构件文件(如 jar 包)通过 Nexus 管理界面上传到私服仓库中。在管理界面中找到对应的仓库,点击“上传”按钮,选择要上传的构件文件并提交即可。
-
构建时自动部署 :在 Maven 项目的
pom.xml
文件中,通过<distributionManagement>
标签配置项目的发布仓库和快照仓库,将项目的构建结果自动部署到私服中。例如:-
<distributionManagement>
,<repository>
,<id>maven-releases</id>
,<name>nexus-releases</name>
,<url>http://<服务器 IP 地址>:8081/repository/maven-releases/</url>
,</repository>
,<snapshotRepository>
,<id>maven-snapshots</id>
,<name>nexus-snapshots</name>
,<url>http://<服务器 IP 地址>:8081/repository/maven-snapshots/</url>
,</snapshotRepository>
,</distributionManagement>
-
然后在项目根目录下运行
mvn deploy
命令,Maven 会根据配置将项目的构建结果部署到私服的对应仓库中。
-
使用私服中的构件
在项目的pom.xml
文件中,通过<dependency>
标签引用私服中的构件,Maven 在构建项目时会自动从配置的私服中下载所需的依赖。例如: <dependency>
,<groupId>org.example</groupId>
,<artifactId>my-library</artifactId>
,<version>1.0.0</version>
,</dependency>
。