跳到元数据的末尾
进入元数据的开始

概述

弃用的通知

从Visual Studio的2017版开始,不再支持MSBuild Artifactory Plugin。

为了让Artifactory继续使用MSBuild, JFrog开发了一个替代解决方案,可以在JFrog的GitHub存储库它也有完整的文档。

当前的MSBuild Artifactory Plugin现在已弃用,我们建议在所有版本的Visual Studio中使用新的解决方案。


Artifactory通过MSBuild Artifactory Plugin为MSBuild, TFS和Visual Studio带来持续集成。这允许您捕获关于已部署工件的信息,解决与MSBuild构建运行相关的Nuget依赖关系和环境数据,并将工件部署到Artifactory。此外,Artifactory捕获的详尽构建信息使构建可以完全跟踪。

MSBuild Artifactory Plugin

MSBuild Artifactory插件是一个GitHub上的开源项目你可以自由浏览和分叉。

示例代码

开始吧,这里有一个例子使用MSBuild Artifactory Plugin的多个项目的解决方案

无论您是运行独立构建还是使用CI服务器,都可以使用MSBuild Artifactory Plugin。无论哪种情况,你都应该注意以下几点:

  1. 独立的集成
    MSBuild Artifactory Plugin与MSBuild流程完全集成,因此它可以作为标准构建的一部分运行。
    该插件使用传统的MSBuild XML配置文件来影响构建过程的不同阶段。
  2. CI服务器集成
    当在持续集成服务器上运行MSBuild构建时,使用插件是透明的,因为它实际上是MSBuild过程中不可分割的一部分。唯一的区别是插件从CI服务器收集信息。
    MSBuild Artifactory Plugin完全支持TFS,并收集详尽的构建信息,以实现完全可跟踪的构建。对其他CI服务器(如Jenkins、TeamCity和Bamboo)的支持是局部的,使用这些工具运行时收集的构建信息也相应是局部的。
页面内容


安装

使用Visual Studio将MSBuild Artifactory Plugin安装为“项目模板”,如下所示:

  • 工具,选择扩展和更新…,选择视觉工作室画廊来源根据在线节中,搜索一下"Artifactory"
  • 选择Artifactory模板包找到扩展,然后单击安装

  • 一旦安装完成,s选举解决方案你想要安装插件的。右键单击解决方案节点并选择添加|新项目…选择Artifactory单击“确定”。

创建Artifactory项目

解决Nuget依赖项,插件需要一个.nuget目录。在开始安装之前,请确保该目录存在。


您应该看到解决方案的以下更改:

  • 链接到Artifactory插件的新定制项目。
  • 一个.artifactory文件夹将添加到解决方案中。确保此目录已提交给源代码控制。
  • .artifactory文件夹,一个Artifactory.build文件创建完成。这是主要的插件配置文件。
  • 两个.targets完成文件的创建。这些是由插件内部使用的,不应该手动修改。

  • Nuget解决方案中应该已经安装了与插件相关的软件包。
  • 该插件还将自己的MSBuild配置文件导入到artifactory.csproj而且.nuget \ NuGet.targets文件,以便添加到MSBuild进程。

最后一步是将您的相关项目通过添加的链接到Artifactory项目项目参考.只有被链接的项目才会被插件监控。


安装插件依赖项

以下两个依赖项:Nuget。核心v2.8.2而且Microsoft.Web.Xdt v2.1.1也必须与插件一起安装。

如果您从Artifactory的实例安装插件,您需要确保Artifactory能够访问插件及其依赖项。例如,您可能有一个虚拟存储库引用包含插件的本地存储库,还有一个远程存储库引用nuget.org。有关配置Artifactory的更多详细信息,请参考NuGet存储库


更新

到u更新Artifactory extensions,执行以下步骤:

  • 工具中,选择扩展和更新…,然后,在“Visual Studio Gallery”源码下更新部分。
  • 选择Artifactory模板包找到扩展,然后单击更新

现有项目(可选步骤)

如果你已经有一个您的解决方案中已有的Artifactory项目模板,并且您希望将其更新到最新的模板,请执行以下步骤:

  • 右键单击Artifactory项目和选择管理NuGet包…
  • 管理NuGet包窗口下,选择一个源(例如nuget.org)更新部分。
  • 选择Artifactory找到包,然后单击更新


卸载

  • 删除.artifactory解决方案中的文件夹及其内容。
  • 从解决方案中移除自定义Artifactory项目。

确保从文件系统中也删除了这些项。


从旧的插件实现迁移

要从旧的插件实现迁移,您需要卸载它,然后安装新的实现



配置

一般信息

配置MSBuild Artifactory PluginArtifactory.build配置文件。该文件的结构使用MSBuild语言约定,因此所有属性都可以使用保留的属性环境属性

MSBuild可以收集在构建中配置的属性范围,或在环境变量。这种能力在不同的情况下都很有用:

  • 您可以根据插件运行的构建上下文动态重写插件配置。
  • 您可以防止将敏感信息检入源代码控制。
    例如,如果构建在一个构建服务器(如TFS)下运行,那么所有的Artifactory凭证都可以由服务器管理员定义,因此,不会被检入/提交给源代码控制。

有关MSBuild属性的详细信息,请参阅MSBuild参考文档

配置说明

有关配置的详细信息,请参见Artifactory.buildconfiguration file

决议

为了解析包,MSBuild Artifactory Plugin使用NuGet包恢复功能与msbuild -集成包恢复的方法。为支持此功能,安装插件的项目必须是带有.nuget文件夹中。如果.nuget文件夹不存在,插件将不会覆盖解决方案中的包恢复。

msbuild -集成包恢复方法

请注意以下几点:

  • 即使插件安装在项目级别,它也会覆盖NuGet分辨率所有同一解决方案下的项目。
  • 手动配置.nuget / NuGet.Config文件被插件忽略。
  • 修改.nuget / NuGet.targets文件在解析过程中可能导致意外行为。我们强烈建议您不要手动修改这些文件。
  • .nuget文件夹必须提交给源代码控制。

通过Artifactory确保包的解析

为了缓解网络连接不可用的情况,NuGet客户端在本地缓存从远程存储库中下载的任何工件NuGet本地缓存(在AppData % \当地\ NuGet \缓存)随后,NuGet客户端当尝试解析包时,首先检查缓存。因此,从Artifactory中的远程存储库或NuGet Gallery中下载的工件通常存储在这个本地缓存中,并在下次尝试引用它们时从缓存中提供。

为了确保NuGet客户端通过Artifactory解析包,需要删除NuGet本地缓存。

部署

为了支持各种各样的项目模板、解决方案结构和工件类型,MSBuild Artifactory Plugin被设计得非常灵活,允许用户在配置如何部署包方面有很大的自由。

  • 使用一个输入模式,用户可以指定插件将收集用于部署的文件的路径。路径是相对到安装插件的项目,以及到解决方案中由插件引用的其他项目。
  • 使用一个输出模式,用户可以在Artifactory中指定与指定的部署路径相对应的部署路径输入模式
  • 用户也可以指定自定义属性对象生成的所有工件都应加以注释输入模式

目标存储库布局

您可以为您的目标存储库定义一个自定义布局,但是它取决于您是否指定正确的Output Pattern,以确保您的工件被部署到存储库中的正确位置。详情请参阅局部存储库

校验和部署

支持Artifactory的“一次且仅一次”内容存储,该插件使用校验和部署有效地将包部署到Artifactory。在工件实际部署之前,插件将其校验和传递给Artifactory。

如果包已经存在,那么Artifactory不接受新的副本,它只是在数据库中创建一个新的元数据条目,以指示在指定的部署路径中存在工件的另一个“副本”。

具体项目的部署

Artifactory.build.artifactory目录适用于解决方案中的所有项目。但是,您可以覆盖特定项目的部署配置Artifactory.build项目范围内的文件。例如,您可以使用它来指定需要部署的工件的完整路径。插件检测特定于项目的内容Artifactory.build文件,并将部署配置应用于该项目,覆盖常规部署配置。下面的例子展示了“ArtifactoryDemo”。DAL”项目有自己的Artifactory.build文件覆盖通用解决方案部署配置。

覆盖通用解决方案部署配置

环境变量

您可以启用EnvironmentVariables标记,以便MSBuild Artifactory Plugin使用构建过程可访问的所有环境变量,并在构建信息中注册它们。如果在构建服务器下运行,服务器的属性也会被使用和注册。你可以定义IncludePatterns而且ExcludePatterns来控制在发布的构建信息中包含哪些变量。

通配符模式

一个模式可能包含*和?通配符。包含模式在排除模式之前应用。

大量的构建信息可能会降低部署速度

包括所有环境变量作为捕获的构建信息的一部分可能会导致非常大的构建对象,这反过来可能会减慢部署速度。

许可证管理的商品

MSBuild Artifactory Plugin支持Artifactory Pro许可证管理的商品.控件中的几个标记控制该特性Artifactory.build配置文件。

LicenseControl
启用/禁用license控制特性
LicenseViolationRecipients
指定应通过电子邮件接收许可证警报的收件人的地址
AutomaticLicenseDiscovery

设置好后,Artifactory将在部署时用许可信息分析并标记构建的依赖项

资源密集型

自动发现license是一项资源密集型操作,可能会降低部署速度。如果您不执行自动发现license,您仍然可以手动加载license信息通过运行“自动查找”

从构建的许可证选项卡在Artifactory界面。详情请参阅审查建造许可证

IncludePublishedArtifacts
许可证检查通常只在已发布包的依赖项上运行。如果设置了这个标志,将在部署的工件本身上运行许可检查(仅对NuGet包有效)
ScopesForLicenseAnalysis
允许您指定应该在其上运行许可证分析的范围。

黑鸭代码中心集成

如果您正在使用Artifactory Pro,并有一个帐户黑鸭子代码中心,您可以通过自动的、非侵入性的、开源组件审批流程运行构建,并监视安全漏洞。

BlackDuckComplianceCheck
启用/禁用license控制特性
CodeCenterApplicationName
现有的黑鸭代码中心应用程序名称
CodeCenterApplicationVersion
现有的黑鸭代码中心应用程序版本
LicenseViolationRecipients
指定应通过电子邮件接收许可证警报的收件人的地址
ScopesForLicenseAnalysis
允许您指定应该在其上运行许可证分析的范围。
IncludePublishedArtifacts
许可证检查通常只在已发布包的依赖项上运行。如果设置了这个标志,将在部署的工件本身上运行许可检查(仅对NuGet包有效)
AutoCreateMissingComponent
在构建完成并部署到Artifactory后,自动在Black Duck Code Center应用程序中创建缺失的组件。
AutoDiscardStaleComponent
在构建完成并部署到Artifactory后,自动丢弃Black Duck Code Center应用程序中的陈旧组件。

网络配置

通过代理部署

MSBuild Artifactory Plugin支持通过网络代理进行部署。的值ProxySettings的标签Artifactory.build配置文件不被插件识别,它将回落到使用http_proxy环境变量为代理配置使用的格式http:// <用户名>:<密码> @proxy.com。

属性可以绕过代理绕过标签在插件配置中。

解决代理

由于Nuget客户端的技术问题,您不能通过插件通过代理配置NuGet客户端进行解析。为Nuget客户端通过代理解析工件,您需要在代理中配置设置% APPDATA % \ NuGet \ NuGet。配置

有关如何配置Nuget代理的更多信息,请参阅NuGet配置设置


使用MSBuild Artifactory Plugin运行构建

一旦你完成了MSBuild Artifactory Plugin的设置,你就可以运行一个项目构建了。该插件在构建结束时生效,并执行以下操作:

  1. 将指定的已发布构件发布到选定的目标存储库,并应用适当的路径映射。
  2. 将BuildInfo部署到Artifactory,提供构建的完整追溯性,并链接回TFS中的构建。

下面的例子显示了生成日志的Visual Studio输出(最小冗长日志级别:正常),其中包含一些已部署的工件。在底部有一个到Artifactory上的Build Info报告的链接。


团队基础服务器(TFS)集成

MSBuild Artifactory Plugin为TFS用户带来CI Build Integration,允许您有效地将工件部署到Artifactory。除了插件已经注册的BuildInfo之外,所有与TFS相关的参数也被记录下来,以促进完全可跟踪的构建。

有关如何在Artifactory中使用构建信息的更多信息,请参阅BuildInfo

MSBuild参数在TFS

MSBuild Artifactory Plugin配置文件支持MSBuild保留的属性环境属性最佳实践是在TFS构建配置中定义这些属性。这使您可以保护敏感信息,并使用不同的属性运行相同的构建。下面是在TFS构建定义中配置的属性示例。

使用团队基础构建还原包

对于teamfoundation2013本地构建,默认的构建过程模板已经实现NuGet包恢复工作流无需任何特殊配置。

为了避免从插件外部恢复NuGet包,您需要从工作流中删除它。


许可证

MSBuild Artifactory插件可以在Apache v2 License


截屏视频



发布说明

2.2.0(2016年3月10日)
  1. 支持TFS 2015
2.1.0(2015年8月18日)
  1. 支持Visual Studio 2015
  2. 错误修复MSBAI-7
2.0.0(2015年4月30日)
  1. Artifactory插件作为一个Visual Studio扩展,作为解决方案中的“项目模板”。
  2. 支持黑鸭子代码中心作为构建过程的一部分。
1.0.0(2014年9月30日)
  1. 首次发布。






  • 没有标签