Groovy-无法在JFrog Artifactory中上传工件

时间:2019-04-24 20:44:59

标签: jenkins-pipeline artifactory jenkins-groovy jfrog-cli

在下面的代码中:

def server = Artifactory.server 'server_id';

def uploadSpec = """{
                "files": [{
                    "pattern": "${WORKSPACE}/$repoName/target/$repoName-0.1-$jarType.jar",
                    "target": "libs-release-local/a/b/c/"
                    }
                    ]
            }"""

server.upload(uploadSpec)    

server.upload(uploadSpec)首次运行时未在a/b/c下创建存储库路径libs-release-local


Jenkins以管理员权限连接到Artifactory

1)为什么以上代码没有在Artifactory中创建用于上传工件的存储库路径?

2) server.upload是否在内部使用JFrog cli?

2 个答案:

答案 0 :(得分:0)

1)仅当上传工件时,才会在存储库下创建路径。如果未发生错误且未创建路径,则假定该模式未找到任何匹配项,也没有上传任何工件。

关于您的评论,您可以通过将'failNoOp'设置为true来诊断问题,如果没有文件受到影响,构建将会失败:

server.upload(uploadSpec, true) 

对于每个上载的工件,控制台输出还将包含一行“正在部署工件:/ path / to / artifact”。

2)不,Jenkins Artifactory插件完全不依赖JFrog CLI。

答案 1 :(得分:-1)

您可以为此使用jfrog的REST API:https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API

并使用curl放置人造物。

例如

sh("curl -u username:password@ -X PUT \"${mavenRepo}/${relativeMavenPath}/${serviceName}/${serviceTag}/${serviceName}-${serviceTag}.jar\" -T services.jar")