使用Nexus Repository搭建maven远程仓库
安装及启动服务
使用Nexus Repository Manager在Windows Server上搭建Maven中央仓库是一个常见的做法。以下是一个详细的步骤指南,帮助你完成这一任务:
一、准备工作
下载Nexus Repository Manager
访问Sonatype Nexus Repository Manager的官方网站或相关下载页面。
根据你的操作系统(Windows)选择相应的安装包进行下载。
安装Java环境
确保你的Windows Server上已经安装了Java Development Kit(JDK)。
Nexus需要JDK来运行,因此请确保JDK的版本与Nexus的要求相匹配。
二、安装Nexus Repository Manager
解压安装包
将下载的Nexus安装包解压到一个合适的目录。
配置内存
打开解压后的目录,找到nexus.vmoptions文件。
根据你的服务器配置,调整内存设置。
安装Nexus服务
以管理员身份打开命令提示符。
切换到Nexus的bin目录。
执行nexus.exe /install命令来安装Nexus服务。
启动Nexus服务
执行nexus.exe /start命令来启动Nexus服务。(有的版本启动命令为nexus.exe /run)
你可以使用nexus.exe /status命令来检查服务是否已启动。
三、配置Nexus
访问Nexus Web界面
打开浏览器,输入http://localhost:8081(默认端口为8081,如果端口被占用或已修改,请使用相应的端口号)。
使用默认的用户名(通常是admin)和密码(在sonatype-work\nexus3\admin.password文件中可以找到)登录。
修改默认密码
登录后,系统会提示你修改默认密码。请按照提示操作。
创建Maven仓库
在Nexus Web界面中,导航到"Repositories"页面。
点击"Create repository"按钮。
选择"Maven2 (hosted)"作为仓库类型。
填写仓库名称和其他相关信息。
点击"Create repository"按钮完成仓库的创建。
配置Maven客户端
在你的Maven项目的settings.xml文件中,配置仓库的镜像或代理设置。
你可以将Nexus仓库配置为默认的镜像仓库,以便Maven在下载依赖时优先使用Nexus仓库。
四、上传和管理依赖
手动上传依赖
在Nexus Web界面中,导航到"Components"页面。
选择你创建的Maven仓库。
点击"Upload"按钮,手动上传你的Maven项目依赖(如JAR文件)。
通过Maven命令上传依赖
配置你的Maven项目的pom.xml文件,指定分发管理(distributionManagement)部分。
使用mvn clean deploy命令将项目依赖上传到Nexus仓库。
五、验证和监控
验证仓库配置
在Nexus Web界面中,检查新创建的仓库是否包含已上传的依赖。
使用Maven客户端下载依赖,验证是否能够从Nexus仓库中获取依赖。
监控仓库状态
在Nexus Web界面中,监控仓库的使用情况和状态。
定期检查日志和报告,以确保仓库的稳定性和安全性。
通过以上步骤,你可以在Windows Server上使用Nexus Repository Manager成功搭建Maven中央仓库。这将大大提高你的Maven项目的构建效率和依赖管理的便利性。
更改IP端口
要修改Nexus的端口,可以按照以下步骤进行:
一、确定Nexus版本和安装路径
首先,需要确定你正在使用的Nexus版本以及它的安装路径。不同版本的Nexus可能在文件结构和配置文件上有所不同。
二、找到配置文件
Nexus 2.x :
配置文件通常位于<安装目录>/nexus/conf/或<安装目录>/nexus/bin/jsw/conf/目录下的nexus.properties文件中。
找到application-port属性,该属性表示Nexus的端口号。
Nexus 3.x :
配置文件通常位于<安装目录>/etc/目录下的nexus.properties文件或nexus-default.properties文件中。
同样找到application-port属性,并修改其值以更改端口号。
三、修改端口号
- 打开找到的nexus.properties或nexus-default.properties文件。
- 搜索application-port属性。
- 将application-port属性的值更改为你想要的端口号。例如,将其更改为8085。
四、保存配置文件并重启Nexus
- 保存对配置文件的更改。
- 重启Nexus服务以使更改生效。
对于Nexus 2.x,可以在<安装目录>/nexus/bin/目录下运行相应的启动脚本(如start-nexus.sh或start-nexus.bat)来重启服务。
对于Nexus 3.x,可以在<安装目录>/bin/目录下运行./nexus start命令来重启服务。
五、验证更改
- 等待Nexus服务完全启动。
- 通过浏览器访问http://localhosthttp://localhost:新端口号/(例如http://localhost:8085/)来验证更改是否成功。
- 如果能够成功访问Nexus的Web界面,则说明端口更改已成功。
注意事项
- 端口冲突 :在更改端口号之前,请确保新端口没有被其他服务占用。
- 防火墙设置 :如果Nexus部署在服务器上,并且需要通过外部网络访问,请确保服务器的防火墙设置允许新端口的通信。
- 备份配置文件 :在修改配置文件之前,建议备份原始文件,以便在出现问题时能够恢复原始设置。
通过以上步骤,你可以成功地修改Nexus的端口号。
创建账号
在Nexus中创建账号密码和进行授权通常涉及几个关键步骤,以下是详细的操作指南:
一、创建账号
登录Nexus管理界面 :
使用管理员账号(通常是admin)登录到Nexus Repository Manager的Web界面。
导航到用户管理页面 :
在左侧导航栏中找到并点击"Security"或"Users and Roles"等类似的选项。
进入用户管理页面。
创建新用户 :
在用户管理页面中,找到并点击"Create User"或类似的按钮。
输入新用户的用户名、密码、电子邮件等必要信息。
注意,密码通常需要符合一定的复杂度要求。
保存用户信息 :
确认所有信息无误后,点击"Save"或类似的按钮保存新用户信息。
二、授权账号
创建角色 (如果需要):
在角色管理页面(通常在"Security"或"Users and Roles"下),点击"Create Role"或类似的按钮。
输入角色名称,并配置该角色可以访问的仓库、权限等。
例如,可以创建一个只能访问特定仓库并具有下载权限的角色。
为用户分配角色 :
回到用户管理页面,找到刚才创建的新用户。
在用户详情页面中,找到并点击"Roles"或类似的选项。
为用户分配一个或多个角色。这些角色将决定用户能够访问哪些仓库以及具有哪些权限。
保存角色分配 :
确认角色分配无误后,点击"Save"或类似的按钮保存设置。
三、验证账号和权限
使用新用户登录 :
使用刚才创建的新用户账号和密码登录到Nexus管理界面或客户端工具(如Maven、Gradle等)。
访问仓库 :
尝试访问用户被授权访问的仓库。
如果一切正常,用户应该能够成功访问并操作这些仓库中的资源。
检查权限 :
如果用户无法访问某些资源或执行某些操作,请检查用户的角色分配和仓库权限设置是否正确。
注意事项
密码安全 :
确保为用户设置强密码,并定期更换密码以减少安全风险。
考虑使用密码管理工具或Nexus提供的密码加密功能来保护密码。
权限管理 :
仔细配置用户的权限,确保他们只能访问和操作他们需要的资源。
定期审查用户权限,以确保没有不必要的权限分配。
备份和恢复 :
定期备份Nexus配置和用户数据,以防止数据丢失或损坏。
了解如何恢复Nexus配置和用户数据,以便在需要时能够快速恢复服务。
通过以上步骤,你可以在Nexus中成功创建账号、分配权限并验证账号的有效性。这将有助于确保只有授权用户能够访问和操作你的仓库资源。
创建Blob Stores和Repositories仓库
创建Blob Stores
default是默认就有的,创建仓库时一般选择default目录

创建docker-hub:

创建npm-hub

创建仓库
创建daasan-snapshot仓库:

创建daasan-release仓库:

本地的maven安装配置、及idea中的pom.xml配置
maven安装
下载安装包后解压即可,可将安装路径添加到环境变量
maven配置
安装后配置maven中的settings.xml文件

-
配置本地仓库所在的路径:
-
<localRepository>E:/dsinstall/repository929</localRepository>
-
配置<servers>节点:
-
<servers>
-
<!--第一个nexus-daasan要和下面的mirror中的id一致,代表拉取时也需要进行身份校验-->
-
<server>
-
<id>nexus-daasan</id>
-
<username>username</username>
-
<password>password</password>
-
</server>
-
<server>
-
<!--这两个是jar上传时候进行的验证,id对应的是pom中id属性的值-->
-
<id>daasan-releases</id>
-
<username>username</username>
-
<password>password</password>
-
</server>
-
<server>
-
<id>daasan-snapshots</id>
-
<username>username</username>
-
<password>password</password>
-
</server>
-
</servers>
-
配置<mirrors>节点:
-
<mirrors>
-
<mirror>
-
<id>nexus-daasan</id>
-
<name>daasan nexus repository</name>
-
<url>http://IP地址:8881/repository/daasan-group/\</url>
-
<mirrorOf>*</mirrorOf>
-
</mirror>
-
<mirror>
-
<id>daasan-releases</id>
-
<url>http://IP地址:8881/repository/daasan-release/\</url>
-
<mirrorOf>*</mirrorOf>
-
</mirror>
-
<mirror>
-
<id>daasan-snapshots</id>
-
<mirrorOf>*</mirrorOf>
-
</mirror>
-
<mirror>
-
<id>aliyunmaven</id>
-
<mirrorOf>*</mirrorOf>
-
<name>阿里云公共仓库</name>
-
<url>https://maven.aliyun.com/repository/public\</url>
-
</mirror>
-
</mirrors>
-
配置<profiles>节点
-
<profiles>
-
<profile>
-
<!--ID用来确定该profile的唯一标识-->
-
<id>jdk-1.8</id>
-
<activation>
-
<activeByDefault>true</activeByDefault>
-
<jdk>1.8</jdk>
-
</activation>
-
<properties>
-
<maven.compiler.source>1.8</maven.compiler.source>
-
<maven.compiler.target>1.8</maven.compiler.target>
-
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
-
</properties>
-
</profile>
-
<profile>
-
<id>nexus-pr</id>
-
<!-- 远程仓库列表 -->
-
<repositories>
-
<repository>
-
<id>nexus-daasan</id>
-
<name>Nexus Central</name>
-
<!-- 虚拟的URL形式,指向镜像的URL -->
-
<url>http://IP地址:8881/repository/daasan-group/\</url>
-
<layout>default</layout>
-
<!-- 表示可以从这个仓库下载releases版本的构件-->
-
<releases>
-
<enabled>true</enabled>
-
</releases>
-
<!-- 表示可以从这个仓库下载snapshot版本的构件 -->
-
<snapshots>
-
<enabled>true</enabled>
-
</snapshots>
-
</repository>
-
</repositories>
-
<!-- 插件仓库列表 -->
-
<pluginRepositories>
-
<pluginRepository>
-
<id>nexus-daasan</id>
-
<name>Nexus Central</name>
-
<url>http://IP地址:8881/repository/daasan-group/\</url>
-
<layout>default</layout>
-
<snapshots>
-
<enabled>true</enabled>
-
</snapshots>
-
<releases>
-
<enabled>true</enabled>
-
</releases>
-
</pluginRepository>
-
</pluginRepositories>
-
</profile>
-
</profiles>
idea中的pom.xml配置
在根项目路径中的pom.xml文件配置如下:

- <!-- 分发配置,在执行mvn deploy后要发布的位置 -->
- <distributionManagement>
- <repository>
- <id>daasan-releases</id>
- <name>Daasan Repository</name>
- <url>http://IP地址:8881/repository/daasan-release/\</url>
- </repository>
- <snapshotRepository>
- <id>daasan-snapshots</id>
- <name>Daasan Snapshot Repository</name>
- <url>http://IP地址:8881/repository/daasan-snapshot/\</url>
- </snapshotRepository>
- </distributionManagement>
这里pom.xml中的id要和maven的setting.xml中<server>节点中的id要相同

将本地的文件deploy到远程仓库
选择root中的deploy,点击运行即可上传到远程仓库中

登录web管理端:http://IP地址:8881/#browse/browse:daasan-snapshot
即可看到刚才上传的文件:

常见问题处理
更改IP端口
打开文件nexus\nexus-3.29.2-02-win64\nexus-3.29.2-02\etc\nexus-default.properties,修改ip端口即可;
设置web管理页面未登录时不能看到里面的文件
去掉勾选即可

将创建的仓库添加到maven-public公共仓库

将nexus做成自启动服务
每次通过nexus.exe /run命令行启动很麻烦,添加nexus到计算机的服务中,命令是:nexus.exe /install 需要管理员权限

