在以下代码中:
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吗?
1)仅在上载工件时才会在存储库下创建路径。如果没有发生错误并且未创建路径,我假设模式没有找到任何匹配并且没有上传任何工件。
至于你的评论,你可以通过将'failNoOp'设置为true来诊断问题,如果没有文件受到影响,这将使构建失败:
server.upload(uploadSpec, true)
对于上传的每个工件,控制台输出还将包含一行“部署工件:/ path / to / artifact”。
2)不,Jenkins Artifactory插件根本不依赖于JFrog CLI。
你可以使用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")