首页 > 解决方案 > 带有 Dockerized 声明式管道的 Artifactory 插件

问题描述

我正在尝试使用 Jenkins 声明式管道进行 dockerized 构建。我正在使用 Artifactory 插件来解决依赖关系。下面的管道适用于agent: any但给 dockerfile 一个授权错误。

def server = Artifactory.server ARTIFACTORY_NAME
def rtMaven = Artifactory.newMavenBuild()
def buildInfo

pipeline {
    agent {
        dockerfile true
    }

    stages {
        stage('Artifactory configuration') {
            steps {
                script {
//                    rtMaven.tool = "maven 3.3.9"
                    rtMaven.deployer server: server
                    rtMaven.resolver server: server
                    buildInfo = Artifactory.newBuildInfo()
                }
            }
        }
        stage('Build') {
            steps {
                script {
                    env.MAVEN_HOME="/usr/share/maven"
                    env.JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
                    echo "MAVEN_HOME ${MAVEN_HOME}"
                    echo "JAVA_HOME ${JAVA_HOME}"
                    rtMaven.run pom: 'pom.xml', goals: 'clean install test', buildInfo: buildInfo
                }
            }
        }
    }

}

JAVA_HOME和的MAVEN_HOME设置与 Dockerfile 中的相同。错误如下所示:

 Non-resolvable parent POM for ARTIFACTORY: Could not transfer artifact ARTIFACTORY from/to artifactory (ARTIFACTORY_PATH): 
Not authorized , ReasonPhrase:Unauthorized. and 'parent.relativePath' points at wrong local POM @ line 11, column 13 -> [1m[Help 2][m

标签: dockerjenkinsjenkins-pluginsjenkins-pipelineartifactory

解决方案


推荐阅读