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-group,nuget-hosted,nuget.org-proxy
nuget.org-proxy
类型是proxy,表示代理仓库。我们向它请求包(package)的时候,如果本地有,它就从本地提供,如果本地没有,它会从nuget.org下载到本地,然后给我提供这个包。
nuget-hosted
类型是hosted,表示托管仓库。我们一般把自己开发的包上传到该仓库中。
nuget-group
类型是group,表示仓库组,它结合了nuget.org-proxy和nuget-hosted,能对外提供上述两者中的包。
我们可以使用以上默认的几个仓库来保存nuget包,当然也可以自己创建先的仓库来存放,如下图:

点击 Create reposltory 弹出如下图

接下来我就以将包上传到默认的nuget-hosted为例。
点击nuget(hosted)弹出如下图 输入仓库名: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}.nupkg:nuget包所在的路径,可以是相对路径也可以是绝对路径
{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 Studio的Nuget管理器,进行设置

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 你创建的仓库会出现这些:


浙公网安备 33010602011771号