将构建工件与Nexus存储库相关联

时间:2020-06-25 21:09:50

标签: azure-devops nexus azure-devops-extensions

https://docs.microsoft.com/en-us/azure/devops/pipelines/scripts/logging-commands?view=azure-devops&tabs=bash

我在PowerShell中创建了一个自定义的Nexus上传脚本,以将构建工件从工件暂存目录上载到Nexus存储库。在PS脚本中,我正在运行以下命令,因此构建管道与Nexus存储库中的工件相关联。但是我不确定要为工件类型添加什么,根据文档,似乎选项是container | filepath | versioncontrol | gitref | tfvclabel。

Write-Host "##vso[artifact.associate artifacttype=filepath;artifactname=$fileName]http://nexusDNS:8081/repository/$Repository"

无论如何,在将构建管道与发布管道相关联之后,我运行了一个发行版,它将首先尝试下载链接的工件,这就是我得到的消息。

从以下位置下载工件Testartifact.zip:http:\ nexusDNS:8081 \ repository \ Test \ Testartifact.zip

因为我将artifacttype声明为“ filepath”,所以它将http://转换为http:。

有人可以帮助我如何使发布渠道直接从Nexus下载工件吗?作为发布任务的一部分,我是否需要编写另一个脚本来使用Nexus API下载工件?

1 个答案:

答案 0 :(得分:0)

您可以尝试Sonatype Nexus Repository Release Artifact扩展名。该扩展利用发行版管道提供对Nexus Maven储存库的支持,初始版本包括对Nexus Maven储存库的Release Pipeline Artifact支持,并提供Azure管道任务以从Maven储存库下载资产。

此扩展程序要求您首先配置服务连接以连接到Nexus Repository服务器(project settings -> Services Connections tab and create a New Service Connection of type Sonatype Nexus Repository)。建立连接后,您可以链接Nexus Maven存储库中的源工件,并在发布管道中使用这些工件。

enter image description here

此外,您还可以使用REST API从nexus存储库下载工件。有关详细信息,请参阅此ticket

wget "http://local:8081/service/local/artifact/maven/redirect?g=com.mycompany&a=my-app&v=LATEST" --content-disposition