前言

  Nuget是ASP .NET Gallery的一员,是免费、开源的包管理工具,专注于在.Net / .Net Core应用开发过程中第三方组件库的管理,相对于传统单纯的dll引用要方便、科学得多。其中nuget.org是最著名的Nuget公开库,但是企业内部开发的(业务)公共组件不可能都往公开库上传,所以,企业内部需要一个私有的Nuget仓库来支持。虽然微软有提供的Nuget Server,但Nuget Server用起来并不那么顺手,或者说感觉有点low。因此,本文将介绍Nexus搭建的Nuget仓库,希望能给大家多一个选择。

安装步骤

安装环境

Centos 7+, docker

1. 设置分区

如果有数据盘需要挂载,可以先设置分区,没有可跳过此步骤。

mkdir -p /opt/nexus -- 创建存放nexus数据的目录

fdisk -l  -- 查看硬盘信息,确定需要挂载的硬盘信息

mkfs.ext4 /dev/xvde -- 格式化硬盘

mount /dev/xvde /opt/nexus 挂载磁盘

blkid --查看硬盘信息

vim /etc/fstab --将新分区的blkid写入/etc/fstab,内容参考:

UUID={uuid} /opt/nexus ext4 defaults 0 0

保存退出,并重启机器。

2. 禁止SELINNUX

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

重启机器。

3. 安装docker

如果已安装的docker,可跳过此步骤。

yum update

yum install -y docker

systemctl enable docker

systemctl start docker

4. 拉取Nexus的镜像

docker pull sonatype/nexus3:3.12.0

镜像详细说明:https://hub.docker.com/r/sonatype/nexus3/

5. 运行Nexus并把数据持久化到虚拟机或挂载的分区

mkdir /opt/nexus && chown -R 200 /opt/nexus

docker run -d -p 8081:8081 --name nexus -v /opt/nexus:/nexus-data sonatype/nexus3:3.12.0

稍等片刻,可能是几分钟,通过http://serverip:8081就能访问Nexus了。

Nexus说明

1. 默认帐号

Nexus的默认管理员帐号:admin,密码:admin123。点击界面右上角可以登录。

登录完后,可以看到一个设置按钮:

点击Repositories,查看内置的默认仓库:

2. 仓库说明

  其实Nexus默认已经创建好了Nuget的仓库,并且是创建了3个不同类型的仓库:nuget-group,nuget-hosted,nuget.org-proxy。

a. nuget.org-proxy

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

b. nuget-hosted

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

c. nuget-group

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

  简而言之,nuget-hosted负责包上传,nuget.org-proxy负责代理包,nuget-group负责提供包。

上传包(Package)

1. 下载Nuget

https://www.nuget.org/downloads下载最新推荐的nuget.exe。

2. 添加Nuget Realms

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

3. 准备Package

编写DLL:

设置DLL信息(可选)

打包dll

方法一:使用控制台

dotnet pack -c Release

方法二:使用Visual Studio

4. 上传Package

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

例如,我这里是:D:\nuget push E:\WorkPlace\vs2017\Test\ErikDll\ErikDll\bin\Release\ErikDll.1.0.0.nupkg eb0497e8-5519-3f22-8e9f-f2eae720feb5 -source http://192.168.132.137:8081/repository/nuget-hosted/

Nexus上也能看到上传的package:

其中,apiKey的获取方法如下:

5. 使用Package

1. 打开Visual Studio的Nuget管理器,进行设置

2. 添加私有Nuget仓库地址

3. 添加Package

4. 调用结果

使用Nexus搭建私有Nuget仓库的更多相关文章

  1. 搭建私有Nuget仓库

    使用Nexus搭建私有Nuget仓库 https://www.cnblogs.com/Erik_Xu/p/9211471.html 前言 Nuget是ASP .NET Gallery的一员,是免费.开 ...

  2. Android业务组件化之Gradle和Sonatype Nexus搭建私有maven仓库

    前言: 公司的业务组件化推进的已经差不多三四个月的时间了,各个业务组件之间的解耦工作已经基本完成,各个业务组件以module的形式存在项目中,然后项目依赖本地的module,多少有点不太利于项目的并行 ...

  3. Docker - 使用 Nexus3 搭设私有 NuGet 仓库

    目录 前言 NuGet Nexus 私有仓库 说明 安装 Nexus 拉取 Nexus 镜像 运行 Nexus Nexus NuGet 仓库简单使用 Nexus 默认帐号 Repositories 上 ...

  4. nexus 搭建maven本地仓库

    使用Nexus搭建Maven本地仓库   阅读目录 序 Nexus 序 在工作中可能存在有些开发机器不能上网,大量的机器获取jar包会导致公司网络很慢,还有时候公司会自己发布自己的项目版本,其他的项目 ...

  5. 使用Nexus搭建企业maven仓库(二)

    先阅读<使用Nexus搭建企业maven仓库(一)> http://blog.csdn.net/ouyida3/article/details/40747545 1.官网眼下最新的版本号是 ...

  6. 【Docker】(4)搭建私有镜像仓库

    [Docker](4)搭建私有镜像仓库 说明 1. 这里是通过阿里云,搭建Docker私有镜像仓库. 2. 这里打包的镜像是从官网拉下来的,并不是自己项目创建的新镜像,主要测试功能 一.搭建过程 首先 ...

  7. [转]Ubuntu18.04下使用Docker Registry快速搭建私有镜像仓库

    本文转自:https://blog.csdn.net/BigData_Mining/article/details/88233015 1.背景 在 Docker 中,当我们执行 docker pull ...

  8. 使用Sinopia搭建私有npm仓库

    使用Sinopia搭建私有npm仓库 在用npm装包的时候,每次都要下载一大堆,慢且不说,npm还老被墙,所以就想到在公司内部搭建npm仓库镜像.大概看了几个,觉得Sinopia最简单也好用,所以就使 ...

  9. 019.nexus搭建docker镜像仓库/maven仓库

    一.安装docker CE 参考docker doc https://docs.docker.com/install/linux/docker-ce/centos/ 二.docker启动nexus3 ...

随机推荐

  1. ddt运行测试方法时报错AttributeError: type object 'TestHttpRq' has no attribute 'test_http_rq_login'

    import unittest import ddt #装饰器 from ddt import ddt,data,unpack #导入ddt中的各个模块 from homework.unittest_ ...

  2. (二叉树 递归) leetcode 889. Construct Binary Tree from Preorder and Postorder Traversal

    Return any binary tree that matches the given preorder and postorder traversals. Values in the trave ...

  3. Exp3 免杀原理与实践

    一.实验过程 1.编码器 (1)使用msf编码器,直接生成meterpreter可执行文件(跟Exp2中生成backdoor.exe的过程一样,生成后门文件),送到Virscan.VirusTotal ...

  4. SpringBoot项目打成jar包后上传文件到服务器 目录与jar包同级问题

    看标题好像很简单的样子,但是针对使用jar包发布SpringBoot项目就不一样了.当你使用tomcat发布项目的时候,上传文件存放会变得非常简单,因为你可以随意操作项目路径下的资源.但是当你使用Sp ...

  5. java接口多实现和多继承

    package test; interface mouth { public abstract void speak(); } interface nose{ public abstract void ...

  6. CodeChef - COUNTREL Count Relations

    题目链接 给你一个长为NNN的1,2,3,....N1,2,3,....N1,2,3,....N的序列,让你求出两种关系各个有多少可能: R1R_1R1​,由于x,yx,yx,y互不是子集,且交集为空 ...

  7. springboot-文件上传xls及POI操作Excel

    1.pom导入依赖文件 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-o ...

  8. 移动端底部fixed固定定位输入框ios下不兼容

    简短记录下最近开发移动端项目碰到的小坑,产品需求做一个售后对话页面,底部固定输入框,和微信对话差不多,但是在ios下,fixed失效,输入框被虚拟键盘挡住,在安卓下是正常的. 尝试过网上说的很多方法, ...

  9. less封装样式有规律的类选择器-遁地龙卷风

    1.解决的问题 .class-rule(p,2,width 20px animation-dely 0.1s);可以生成下列css样式 .p2 { animation-dely: 0.2s; widt ...

  10. 转 原生js canvas实现苹果电脑mac OS窗口最小化效果

    http://www.17sucai.com/pins/demo-show?id=2459 http://www.17sucai.com/pins/demo-show?id=2458  很多资料 ,前 ...