Azure Artifacts

其实就是你自己的包管理服务。就好比现有的 maven(java)、nuget(.net)、pip(python)、npm(javascript) 等等这种包管理服务。

很多时候企业级的包,不会也不可能让你放到公共平台上,所以企业内部需要搭建自己的包管理平台。因此 Azure Artifacts 就是这么一个服务平台。

什么叫包管理

包(Artifacts),正确翻译叫工件,通俗地说就是你编译好的类库、框架、中间件编译成功后的包,比如 jar,dll 等等。试想一下,你有5个项目用到了某些类库或框架,你也不可能每个项目拷贝一份源代码吧?

早十年前,我们需要通过 CV(Ctrl+C Ctrl+V)的方式,从服务器或者共享文件夹里拷贝这些包到本地,然后添加引用,这样我们才可以用到包里的函数、变量等等,当然这样的做法显而易见的就是版本管理,有可能同一个项目下,张三引用的包和李四引用的包,版本就不同,因为这样的问题当年肯定很多人抓狂了不止一次。

因此就有了包管理平台,只要把包上传到该平台,源头都一样,自然版本就一样了。而且包会在你代码编译的时候,自动去下载相关的包到本地(本地缓存优先),完全省去了包版本还有地址的烦恼。

为什么会搭建自己的包管理平台

比如企业内部统一进行所有包的版本管理,包括市面上流行或者官方出的包版本,这样做是为了开发的规范,同样也是为了避免纠纷,减少企业的损失。

对于网络有限制的公司,有可能是封闭式开发的,不让上公网,或者也有很多公司对公网有所限制,下载速度很呵呵,所以企业内部自己搭建一个包管理平台就很有用了。

如何使用

图片.png
07.Azure Artifacts 包管理平台 - 图2
图片.png

源名称

这个你随意咯,取名字而已。

可见性

这还用说吗?权限罢了,谁有权限看到这个包源的列表。

来自公告源(nuget.org、npmjs.com)的包

举个例子,你的包比如叫 “SupreMvc.Core”,它有一个依赖叫 “Microsoft.AspNetCore.Mvc” 的包,因此

选择第一项,在下载 SupreMvc.Core 包时,发现有其他依赖你本地没有,则会从官方云平台的公网下载相关依赖的包。(没有找公网索取)
选择第二项,就是只看你包源里有没有依赖包,没有就无法下载,编译的时候就会报错了。(家里没有,那就没有了,其他家有也跟我没关系)

创建好了就会这样显示
07.Azure Artifacts 包管理平台 - 图4
什么都没有?急什么,你还没有发布包呢。
点击“连接源”
07.Azure Artifacts 包管理平台 - 图5

微软其实已经教你怎么做了,我们就跟着做就好了。
用 nuget 推送包
**07.Azure Artifacts 包管理平台 - 图6
按着他的步骤,在命令行敲就行了。
07.Azure Artifacts 包管理平台 - 图7
07.Azure Artifacts 包管理平台 - 图8
07.Azure Artifacts 包管理平台 - 图9
这一个模块相对于其他的比较简单,也很容易掌握。