1
votes

I am trying to figure out the appropriate way to connect an Azure DevOps pipeline that executes a Maven build to a remote JFrog Artifactory Maven repository.

I first looked at Feeds and Upstream Sources. I didn't see anything in the documentation that shows how to do this. Indeed it looks as though you can't actually do it.

Then I looked at Service Endpoints. Here, I was able to create a service endpoint that points at my Artifactory host. Great! I added a task of Maven Authenticate, which is the only one I saw that allows me to reference the mavenServiceConnection. But the pipeline still fails when trying to resolve artifacts, because it only looks at Maven Central.

# Docker


trigger:
- master

resources:
- repo: self

variables:
  tag: '$(Build.BuildId)'

stages:
- stage: Build
  displayName: Build image
  jobs:  
  - job: Build
    displayName: Build
    pool:
      vmImage: 'ubuntu-latest'
    steps:
    - task: MavenAuthenticate@0
      inputs:
        mavenServiceConnections: 'eti-libs-snapshots-local'
    - task: Maven@3
      inputs:
        options: '-X'
        mavenPomFile: 'pom.xml'
        publishJUnitResults: true
        testResultsFiles: '**/surefire-reports/TEST-*.xml'
        javaHomeOption: 'JDKVersion'
        mavenVersionOption: 'Default'
        mavenAuthenticateFeed: false
        effectivePomSkip: false
        sonarQubeRunAnalysis: true
        sqMavenPluginVersionChoice: 'latest'    
    - task: Docker@2
      displayName: Build an image
      inputs:
        command: build
        dockerfile: '$(Build.SourcesDirectory)/Dockerfile'
        tags: |
          $(tag)

Edited: Found some more relevant information

1
Have you installed Jfrog Artifactory extension from marketplace?Kontekst

1 Answers

1
votes

So as Kontekst pointed out, I needed to add the Jfrog extension for pipelines. I have done that and got it configured.