0

我们正在使用 jfrog Artifactory cloud 来存储 maven 依赖项。我们在 pom 文件中使用这些依赖项。我们可以从本地文件构建,因为我们在 .m2/settings.xml 文件中添加了 jfrog 凭据。当我们尝试从 azure devops yaml 文件中运行相同的东西时,我们会收到身份验证错误(401 错误代码),并且由于该库没有被下载并且构建失败。我们在 azure devops 中添加了服务连接,它能够连接到 jfrog。如何配置构建管道以访问 jfrog Artifactory 以访问库?

trigger:
  - main

pool:
  vmImage: "ubuntu-latest"

steps:
  - checkout: self
    lfs: true
  - task: ArtifactoryToolsInstaller@1
    inputs:
      artifactoryService: 'xxxxxxxxxxxxxxxxxxxx'
      cliInstallationRepo: 'jfrog-cli'
      installExtractors: true
      extractorsInstallationRepo: 'jcenter'
  - task: ArtifactoryGenericDownload@3
    inputs:
      specSource: 'taskConfiguration'
      fileSpec: |
        {
          "files": [
            {
              "pattern": "repo/*jar",
              "target": $(System.DefaultWorkingDirectory)/lib
            }
          ]
        }
      failNoOp: true
  - task: Maven@3
    inputs:
      mavenPomFile: "pom.xml"
      mavenOptions: "-Xmx3072m"
      javaHomeOption: "JDKVersion"
      jdkVersionOption: "1.8"
      jdkArchitectureOption: "x64"
      publishJUnitResults: true
      testResultsFiles: "**/surefire-reports/TEST-*.xml"
      goals: "package"
  - publish: $(System.DefaultWorkingDirectory)/target/test.jar
    artifact: artifact
4

1 回答 1

0

您似乎正在使用 Maven 任务,Artifactory Azure DevOps 扩展不支持该任务。此任务不使用已配置的 Artifactory 服务连接。

相反,我建议使用 ArtifactoryMaven 任务。使用此任务会强制解析和部署到 Artifactory,因此不需要 settings.xml 文件。此任务还发布到相关的目标部署存储库。

基本用法示例:

- task: ArtifactoryMaven@1
inputs:
  mavenPomFile: 'pom.xml'
  goals: 'install'
  artifactoryResolverService: 'xxxxxxxxxxxxxxxxxxxx'
  targetResolveReleaseRepo: 'libs-release'
  targetResolveSnapshotRepo: 'libs-snapshot'
  artifactoryDeployService: 'xxxxxxxxxxxxxxxxxxxx'
  targetDeployReleaseRepo: 'libs-release-local'
  targetDeploySnapshotRepo: 'libs-snapshot-local'

您可以在此处阅读有关 Artifactory Maven 任务的更多信息。

于 2021-01-29T12:30:13.830 回答