在下面的代码中:
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?
答案 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")