Jenkins Pipeline - 上传到 Artifactory:无法部署文件/Parent 必须是文件夹
Jenkins Pipeline - Upload to Artifactory: Failed to deploy file / Parent must be a folder
我有一个 Jenkins 作业,它生成一个我想上传到 Artifactory 的 zip 文件。我在设置要上传的工件版本时遇到问题。
按照惯例,我使用时间戳有版本。我想将文件上传到 my/group/timestamp/file.zip
。文件的 url 将是 http://ArtifactoryAdress/foo/my/group/timestamp/file.zip
这是我的管道代码
def serverArtifactory = Artifactory.server 'NameArtificatory'
def uploadSpec = """{
"files": [
{
"pattern": "file.zip",
"target": "my/group/${timestamp}/"
}
]
}"""
serverArtifactory.upload(uploadSpec)
我从 Jenkins Job 收到以下错误
java.lang.RuntimeException: java.io.IOException: Failed to deploy
file. Status code: 400 Response message: Artifactory returned the
following errors:
Parent my/group/timestampValue must be a folder Status code: 400
我查看了 buildInfo,但找不到如何设置版本。
顺便说一句,我也同意没有时间戳但只有组名的解决方案。
别忘了它还在groovy使用${}
。我使用了下面的代码并且有效
def uploadSpec = """{
"files": [
{
"pattern": "**/target/*.war",
"target": "local-release/${APP_REPO}/${version.trim()}/${timestamp}.zip"
}
]}"""
server.upload(uploadSpec)
@编辑。我只是想过。请打印您的${timestamp}
。也许它包含带空格的字符,或者目录名称中不允许使用 Artifactory 的类似内容。试试 trim 你的 timestamp.trim()
最后,这个错误简单明了。
如前所述,路径为 my/group/timestampValue
的文件已存在。你必须在 Artifactory 上删除它。
我有一个 Jenkins 作业,它生成一个我想上传到 Artifactory 的 zip 文件。我在设置要上传的工件版本时遇到问题。
按照惯例,我使用时间戳有版本。我想将文件上传到 my/group/timestamp/file.zip
。文件的 url 将是 http://ArtifactoryAdress/foo/my/group/timestamp/file.zip
这是我的管道代码
def serverArtifactory = Artifactory.server 'NameArtificatory'
def uploadSpec = """{
"files": [
{
"pattern": "file.zip",
"target": "my/group/${timestamp}/"
}
]
}"""
serverArtifactory.upload(uploadSpec)
我从 Jenkins Job 收到以下错误
java.lang.RuntimeException: java.io.IOException: Failed to deploy file. Status code: 400 Response message: Artifactory returned the following errors: Parent my/group/timestampValue must be a folder Status code: 400
我查看了 buildInfo,但找不到如何设置版本。
顺便说一句,我也同意没有时间戳但只有组名的解决方案。
别忘了它还在groovy使用${}
。我使用了下面的代码并且有效
def uploadSpec = """{
"files": [
{
"pattern": "**/target/*.war",
"target": "local-release/${APP_REPO}/${version.trim()}/${timestamp}.zip"
}
]}"""
server.upload(uploadSpec)
@编辑。我只是想过。请打印您的${timestamp}
。也许它包含带空格的字符,或者目录名称中不允许使用 Artifactory 的类似内容。试试 trim 你的 timestamp.trim()
最后,这个错误简单明了。
如前所述,路径为 my/group/timestampValue
的文件已存在。你必须在 Artifactory 上删除它。