gpt4 book ai didi

jenkins - gradle artifactory 发布 : jenkins pipeline does not publish properties

转载 作者:行者123 更新时间:2023-12-03 04:00:08 25 4
gpt4 key购买 nike

我正在尝试建立一个 jenkins 管道,用于将 zip 文件发布到 jfrog artifactory。

我正在使用 com.jfrog.artifactory插件来做到这一点。这在命令行 gradle 中效果很好,我可以运行 artifactoryPublish 任务来发布 Artifactory 并将它们绑定(bind)回模块,然后再绑定(bind)到 Artifactory 。

Artifactory 显示有以下属性:

build.name = `projectname` 
build.number = `some large number`

我可以从它们单击到构建/模块并返回到 Artifactory 。

但是,当我从 jenkinsfile 管道运行它时, Artifactory 会被发布并绑定(bind)回模块,但随后模块没有成功地将模块绑定(bind)回 Artifactory 。

Artifactory 不接收 build.name 和 build.number 属性,我无法从模块单击返回 Artifactory ,因为模块无法找到或解析返回 Artifactory 的路径(zip 文件和生成的 pom)。

我正在传递来自 Jenkins 的参数,例如:
ORG_GRADLE_PROJECT_buildInfo.build.number=${env.BUILD_NUMBER}这似乎适用于其他项目......但无论出于何种原因,我都无法动摇它。

如果这有助于调试,我可以包含更多 jenkinsfile,但我实际上只是在检查一个存储库并尝试发布它。

我一直在这里大量阅读文档:

https://www.jfrog.com/confluence/display/RTF/Gradle+Artifactory+Plugin

并且无法通过 -Pproject东西。

有谁知道我还能尝试什么?我真的不想直接使用 jenkins pipeline artifactory 插件,因为能够从命令行部署也很棒。

构建.gradle:
publishing {
publications {

ManualUpdaterPackage(MavenPublication){
artifact assembleManualUpdaterPackage
}
}
}

artifactory {
contextUrl = "${artifactoryUrl}" //The base Artifactory URL if not overridden by the publisher/resolver
publish {
defaults {
publications('ManualUpdaterPackage')
}
repository {
repoKey = project.version.endsWith('-SNAPSHOT') ? snapshotRepo : releaseRepo
username = "${artifactory_user}"
password = "${artifactory_password}"
maven = true
}

}
}
task assembleManualUpdaterPackage (type: Zip){
dependsOn anotherTask
from (packageDir + "/")
include '**'
// archiveName "manualUpdaterPackage-${version}.zip"
destinationDir(file(manualUpdaterZipDir))
}

Jenkins 文件截图:
withCredentials(
[
[
$class : 'UsernamePasswordMultiBinding',
credentialsId : 'validcreds',
passwordVariable: 'ORG_GRADLE_PROJECT_artifactory_password',
usernameVariable: 'ORG_GRADLE_PROJECT_artifactory_user'
]
]
) {
withEnv(
[
"ORG_GRADLE_PROJECT_buildInfo.build.number=${env.BUILD_NUMBER}",
"ORG_GRADLE_PROJECT_buildInfo.build.name=${artifactName}",
"ORG_GRADLE_PROJECT_buildInfo.build.url=${env.JOB_URL}"
]
) {
sh 'chmod +x gradlew'
sh "./gradlew --no-daemon clean artifactoryPublish"
}

}

最佳答案

https://www.jfrog.com/confluence/display/RTF/Working+With+Pipeline+Jobs+in+Jenkins#WorkingWithPipelineJobsinJenkins-GradleBuildswithArtifactory

最终,我的同事建议改用 Artifactory Pipeline Gradle 插件。与它一起工作非常好,我们在这方面取得了更快的成功。

关于jenkins - gradle artifactory 发布 : jenkins pipeline does not publish properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47167459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com