Nexus下建nuget私有库

1 下载

官网下载,https://www.sonatype.com/download-oss-sonatype,选择各自需要的版本下载即可,

以下以Windows版本Nexus 3.20.1为例,下载会比较慢:

2 安装

安装环境

Windows 10

第一步:

将下载好的压缩包解压出来,会得到两个文件,一个是安装目录一个Work工作目录

注意:解压文件所在的目录不能有中文,不然等会在安装的时候有可能会出现文件找不到的情况

 

 

 

 

 

 

 

第二步:

安装分两种方式:

  一种是直接命令行启动,

  一种是服务启动,

第一种方式的不足就是服务器重启后就关闭了,所以还是推荐第二种,快捷键Ctrl + R打开命令行工具切换到安装目录的 nexus-3.20.1-01\bin 文件夹或直接打开 nexus-3.20.1-01\bin 文件夹在地址栏输入cmd

如下图:

注意:这里推荐还是使用管理员身份打开命令行工具,避免出现权限不足的情况,我在win10下操作时是有出现这种情况的

 

 

 

 

第三步:

输入命令 Nexus.exe/run  Nexus.exe/install,前者是命令行式启动,后者是安装Nexus服务

(1)通过 Nexus.exe/run 启动,需要加载一段时间,请耐心等待,当出现以下界面时说明已经启动成功了:

 

 

 

 

 

(2)通过 Nexus.exe/install 启动,出现以下命令说明安装服务成功了,并且打开服务管理界面,可以看到一个名为nexus的服务,右键启动即可:

 

 

 

 

 

 

 

 

 

PS:如果在启动的过程中出现什么错的话,可以尝试我上面提醒注意的两个点,有没有用管理员身份启动命令行以及安装文件所在目录有没有中文

 

第三步:打开Nexus,确认启动后在浏览器中打开 http://localhost:8081,由于服务启动后还需要2-3分钟的时间才能访问,

所以如果出现浏览器访问失败的情况不要急,等等就好了,正常打开后就是下面这个界面:

 

 

 

PS:Nexus的默认端口为8081,想修改默认端口可打开nexus-3.20.1-01\etc目录下的nexus-default.properties文件,修改为想要的端口号即可

nexus /run //运行
Ctrl + C //停止服务
nexus /install //安装nexus服务
nexus.exe /uninstall //卸载nexus服务
net start nexus //启动nexus服务
net stop nexus //关闭nexus服务
也可以给nexus配置环境变量到bin目录,这样每次运行就不需要命令行切换到bin目录了。

 

3使用

首先我们先登录Nexus,点击右上角Sign in登录按钮,输入用户密码,

默认用户名:admin

默认密码:3.17以下的版本默认密码为 admin123,而3.17以上版本的密码则是存放在目录sonatype-work\nexus3下的admin.password文件里。

 

 

 

首次登录会提示你修改密码以及是否允许匿名访问,根据自身情况去设置即可。

当你修改完密码后admin.password文件就会自动删除;允许匿名访问建议大家先勾上,

因为下一章我要说明的创建nuget私库就需要匿名访问。

后期如果需要修改密码,也可在设置->Users->选择账号->changepassword

 

4 卸载 Nexus

打开命令行,切换到安装目录nexus-3.20.1-01\bin,输入命令 nexus.exe/uninstall 即可。

 

5 Nuget仓库说明

 

 

 

 

 

如上图所示,其实Nexus默认已经创建好了Nuget的仓库,并且是创建了3个不同类型的仓库:nuget-groupnuget-hostednuget.org-proxy

nuget.org-proxy

类型是proxy,表示代理仓库。我们向它请求包(package)的时候,如果本地有,它就从本地提供,如果本地没有,它会从nuget.org下载到本地,然后给我提供这个包。

nuget-hosted

类型是hosted,表示托管仓库。我们一般把自己开发的包上传到该仓库中。

nuget-group

类型是group,表示仓库组,它结合了nuget.org-proxynuget-hosted,能对外提供上述两者中的包。

我们可以使用以上默认的几个仓库来保存nuget包,当然也可以自己创建先的仓库来存放,如下图:

 

 

 

 

 

点击 Create reposltory 弹出如下图

 

 

 

 

 

接下来我就以将包上传到默认的nuget-hosted为例。

点击nugethosted)弹出如下图 输入仓库名:testNoGet

 

 

 

 

点击 Create reposltory 保存仓库:

 

 

 

6 上传nuget

1、下载nuget命令行工具

 官网 下载最新推荐的nuget.exe,将下载的exe文件复制到C:\Windows\System32目录,这样我们就可以直接使用nuget命令行了。

 

 

 

2、添加Nuget Realms

因为Nexus认证Nuget是通过Realms来认证,因此,要添加Nuget Realms

 

点击 Save 保存

 

3、获取仓库地址以及Nuget API Key

A 获取仓库地址在:设置->选择仓库->复制地址,如下图:

 

点击创建的仓库 testNoGet 

 

 

 

 

B 获取Nuget API Key

 

4 上传NuGet

这里默认大家已经准备好nuget包了,

指令模板:nuget push {dll}.nupkg {apiKey} -source {http://customsource/}

其中:

{dll}.nupkgnuget包所在的路径,可以是相对路径也可以是绝对路径

{apiKey} {http://customsource/}:这两个在上一步已经交大家怎么获取了

完整上传命令参考:

nuget push E:\WorkPlace\vs2017\Test\ErikDll\ErikDll\bin\Release\ErikDll.1.0.0.nupkg eb0497e8-5519-3f22-8e9f-f2eae720feb5  -source  http://localhost:8081/repository/testNoGet/

完成后我们可以在Nexus上看到我们上传的包:

 

 

 

 

7 VS中使用Nuget

1、 打开Visual StudioNuget管理器,进行设置

 

2、添加私有Nuget仓库地址

 

 

 

 

3、引用nuget

解决方案右键->管理解决方案的nuget

选择新建的程序包源:之后会弹出 连接 Nexus 的账号和密码

 

 

 

 

下图显示的就是:仓库里的NoGet

 

 

 

 

8 批量上传缓存包

1 先建个Bat 文件,文件内容为

 

:: 编译项目

:: 批量上传nuget到私库

 

@echo off

:: 指定上传的api key

set api_key=28f527fc-8042-3a42-8536-666d03c901cc

:: 指定上传的url

set source_api_uri=http://127.0.0.1:8081/repository/v3/

:: 指定上传的文件后缀

set deployFile=*.nupkg

 

:: 跳转到缓存目录

cd c:

cd C:\Users\Lenovo\.nuget\packages

 

:: 批量推送包

 rem dotnet xxx.dll --environment Production

rem 启用"延缓环境变量扩充"

SETLOCAL ENABLEDELAYEDEXPANSION

 

rem 正在搜索*.nupkg...

:: 参数 /R 表示需要遍历子文件夹,去掉表示不遍历子文件夹

:: %%f 是一个变量,类似于迭代器,但是这个变量只能由一个字母组成,前面带上%%

:: in 后面括号中是通配符,可以指定后缀名,*.*表示所有文件

for /R %DIR% %%f in (%deployFile%) do (

   set name=%%f

   echo !name!

   dotnet nuget push  !name!  -k %api_key% -s %source_api_uri%

)

rem 搜索完毕

pause

 

 

2 这里要提前全局设置nuget的命令为全局:

 

 

 

 

 

bat文件中配置的缓存为你本地的缓存地址:我的缓存地址是 :

 

 

 

 

双击bat文件执行,上传成功命令窗口提示:

 

 

 

 

nexus3 你创建的仓库会出现这些:

 

 

posted @ 2023-01-10 14:52  黑天使的红蓝眼眸  阅读(626)  评论(0)    收藏  举报