【问题标题】:Azure Artifacts - Download a specific version of maven artifactAzure Artifacts - 下载特定版本的 maven 工件
【发布时间】:2020-07-15 20:11:51
【问题描述】:

我们在 CI/CD 流程中使用 azure devops。很多时候,为了进行一些自定义构建,我们需要从 artifact repo 下载特定的 maven jar。

有没有办法(命令行或 API)做同样的事情?

同样的问题是关于从 azure artifacts 下载特定的 jar。

【问题讨论】:

  • 这个问题怎么样?下面的答案是否解决了您的问题,如果没有,请告诉我有关此问题的最新信息吗?
  • 我今天要去试试,希望它也适用于通用包

标签: azure azure-devops azure-devops-rest-api azure-devops-extensions


【解决方案1】:

Azure Artifacts - 下载特定版本的 maven artifact

答案是肯定的。我们可以使用 REST API Maven - Download Package 从 azure artifacts 下载特定的 jar:

GET https://pkgs.dev.azure.com/{organization}/{project}/_apis/packaging/feeds/{feedId}/maven/{groupId}/{artifactId}/{version}/{fileName}/content?api-version=5.1-preview.1

首先,我们需要获取feedId。我们可以使用 REST API Feed Management - Get Feeds 来获取 feedId

GET https://feeds.dev.azure.com/{organization}/{project}/_apis/packaging/feeds?api-version=5.1-preview.1

注意:如果提要是在项目中创建的,则必须提供项目参数。如果提要未与任何项目关联,请在请求中省略项目参数。

对于 URL 中的其他参数,我们可以从包的概述中获取。选择包并打开包,我们可以看到如下视图:

现在,我们有了所有参数,feedIdgroupIdartifactIdversionfileName

所以,我们可以使用带有-OutFile $(Build.SourcesDirectory)\myFirstApp-1.0-20190818.032400-1.jar 的 REST API 来下载包(内联 powershell 任务):

$url = "https://pkgs.dev.azure.com/<OrganizationName>/_apis/packaging/feeds/83cd6431-16cc-480d-bb4d-a213e17b3a2b/maven/MyGroup/myFirstApp/1.0-SNAPSHOT/myFirstApp-1.0-20190818.032400-1.jar/content?api-version=5.1-preview.1"
$buildPipeline= Invoke-RestMethod -Uri $url -OutFile $(Build.SourcesDirectory)\myFirstApp-1.0-20190818.032400-1.jar -Headers @{   
 Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
} -Method Get

由于我的 Maven 提要是组织范围的提要,因此我在 URL 中省略了项目参数。

结果:

【讨论】:

  • 谢谢。我今天会尝试一下,希望通用包也一样
  • 嗨,里奥。对于 Maven,这工作正常。请问通用包类型如何做同样的事情?
  • @Ashutoshgupta,由于这个答案解决了你在这篇文章中的问题,请接受它作为答案。对于通用包类型,请您为这个问题打开一个新线程,我会继续关注。一题一题推荐。感谢您的理解。
  • @LeoLiu-MSFT:我为相同的stackoverflow.com/questions/63015550/…创建了以下查询
【解决方案2】:

我是这样找到的:

  1. 在 Azure 中打开 feed 页面,点击 Connect to feed

  2. 选择 Maven,从 Project setup > repository/url 复制 pom.xml 示例的 URL。

    应该是这样的:

    https://pkgs.dev.azure.com/YOUR-ORGANIZATION/_packaging/YOUR-FEED-NAME/maven/v1
    
  3. 将工件信息附加到该链接:

    https://pkgs.dev.azure.com/YOUR-ORGANIZATION/_packaging/YOUR-FEED-NAME/maven/v1/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
    

    提示:将其与 maven 存储库中的进行比较:

    https://repo1.maven.org/maven2/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 2021-05-15
    • 2013-02-19
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    相关资源
    最近更新 更多