使用Nexus搭建私有Nuget仓库

https://www.cnblogs.com/Erik_Xu/p/9211471.html

前言
  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

保存退出,并重启机器。

  1. 禁止SELINNUX
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

重启机器。

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

yum update

yum install -y docker

systemctl enable docker

systemctl start docker

  1. 拉取Nexus的镜像
    docker pull sonatype/nexus3:3.12.0

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

  1. 运行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,查看内置的默认仓库:

  1. 仓库说明
      其实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

  1. 上传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的获取方法如下:

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

  3. 添加私有Nuget仓库地址

  4. 添加Package

  5. 调用结果

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

  1. 使用Nexus搭建私有Nuget仓库

    前言 Nuget是ASP .NET Gallery的一员,是免费.开源的包管理工具,专注于在.Net / .Net Core应用开发过程中第三方组件库的管理,相对于传统单纯的dll引用要方便.科学得多 ...

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

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

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

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

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

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

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

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

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

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

  7. 使用BaGet 搭建私有nuget 服务器

    使用BaGet 搭建私有nuget 服务器 netNugetBaGet 引言 为了增强代码的安全性和企业团队开发的高效性,搭建私有的package 包管理服务器是很有必要的,搭建私有的类库管理服务有以 ...

  8. NET Core:搭建私有Nuget服务器以及打包发布Nuget包

    docker 安装 https://www.cnblogs.com/liuxiaoji/p/11014329.html 1.使用docker搭建私有Nuget服务器 docker run -d -p ...

  9. 搭建私有 Nuget 服务器教程(1)

    对于 .NET 开发者来说,nuget 是必不可少的程序包管理工具.相应地,大部分开发团队都需要在内部搭建 Nuget 服务器,以管理私有 nupkg 包.本教程所使用的 Nuget 服务器,不是微软 ...

随机推荐

  1. BZOJ 3384 上帝与集合的正确用法

    上帝与集合的正确用法 [问题描述] [输入格式] 第一行一个T,接下来T行,每行一个正整数p,代表你需要取模的值. [输出格式] T行,每行一个正整数,为答案对p取模后的值. [样例输入] 3236 ...

  2. Java中的IO基本用法

    先贴一下我在作业中用到的三种文件输入辅助类.三种文件输出辅助类 public class BuffIn implements InHelp{ private BufferedReader buffer ...

  3. C#byte怎么转成图片

    这个其实很简单我给大家提供一个方法吧 /// <summary> /// 字节数组生成图片 /// </summary> /// <param name="By ...

  4. springBoot 数组增加工具类包

    1.pom中加入依赖 <!--数组工具类 start--> <dependency> <groupId>org.apache.commons</groupId ...

  5. 搜狗拼音输入法LINUX版安装

    搜狗拼音输入法LINUX版官方下载: http://pinyin.sogou.com/linux/?r=pinyin 一.添加fcitx的nightlyPPA 在终端中输入: sudo add-apt ...

  6. CSU 1777: 大还是小?【模拟/后导0】

    293419 roniking 1777 Accepted 2032 0 C++ 2000 2018-04-03 19:21:25 Description 输入两个实数,判断第一个数大,第二个数大还是 ...

  7. HashMap之equals和hashCode小陷阱

    先以一段代码开始这篇blog. 01 public class Name { 02   03   private String first; //first name 04   private Str ...

  8. 记录一次(xheditor-1.1.6-zh-cn.min.js)的错误:Cannot read property 'match' of undefined的问题解决

    由于使用了xheditor富文本框,且这个版本是2011年开发的系统,当时只有IE8,所以一切正常. 但是问题来了,今天使用IE11测试和谷歌浏览器测试,发现一直报这个错误: 且google了一下,没 ...

  9. Android与javaScript的交互

    WebView与js的交互包含两方面,一是在html中通过js调用java代码:二是在安卓java代码中调用js. 一.html中通过js调用java代码 js中调用java代码其实就记住一点,Web ...

  10. 【java】Java中十六进制转换 Integer.toHexString()到底做了什么?什么时候会用到它?为什么要用它?byte为什么要&0xff?为什么要和0xff做与运算?

    参考地址:http://www.cnblogs.com/think-in-java/p/5527389.html 参考地址:https://blog.csdn.net/scyatcs/article/ ...