jenkins - 使用Artifactory Gradle插件在Jenkins Pipeline中设置项目版本

标签 jenkins gradle jenkins-pipeline artifactory

我们希望在Jenkins管道中的项目构建期间为Gradle项目定义项目版本,其中将包括时间戳和git-commit-id。 ( 20180625180158-b8ad8df0dc0356a91707eaa241de7d62df6a29f2 )

void defineVersion() {
sh "git rev-parse HEAD > .git/commit-id"
commitId = readFile('.git/commit-id')
timestamp =  getCurrentTimestamp()
version = timestamp+'-'+commitId
}

此功能将确定我要与之一起发布 Artifact 的版本。
接下来,我使用Artifactory Gradle插件进行发布,但是找不到设置/覆盖项目版本的方法。我希望jar版本发布为 20180625180158-b8ad8df0dc0356a91707eaa241de7d62df6a29f2
version = defineVersion() // how can we incorperate this version in our gradle build/publish?

gradleBuild = Artifactory.newGradleBuild()
gradleBuild.useWrapper = true
gradleBuild.deployer(
        repo: env.BRANCH_NAME == 'master' ? 'libs-releases-local' : 'libs-snapshots-local',
        server: Artifactory.server('artifactory-global'))

gradleBuild.run tasks: 'clean build artifactoryPublish'

我们怎样才能做到这一点?另外,我想将其他参数(如 -x test )传递给run命令以跳过此阶段的测试。

最佳答案

显然,您可以通过switches参数添加参数:https://jenkins.io/doc/pipeline/steps/artifactory/

这样,您就可以添加必要的参数,例如'-x test -Pversion=' + version
对于我的用例,我在 build.gradle :version = "${version}"中添加了一个version属性,因此可以使用上述命令覆盖它。

关于jenkins - 使用Artifactory Gradle插件在Jenkins Pipeline中设置项目版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51027751/

相关文章:

node.js - jenkins 中私有(private) git npm 存储库的主机 key 验证失败

android - Firebase Firestore阻止Gradle完成构建

docker - Jenkins Pipeline是否可以编写/配置单独的Jenkins作业?

android - 在项目中时如何进入Android Studio的主屏幕?

grails - 将 Grails 从 2.x 迁移到 3.x 后无法应用 gradle grails 插件

linux - 如何防止docker在错误时停止/删除容器

macos - 无法连接到 jenkins docker 容器 MacOS 内的 docker

scala - 对于生产版本,是否有必要在 "clean"之前添加 "stage"SBT?

Jenkins - 将构建日志从 master 复制到共享驱动器

jenkins - 将 Go 测试输出转换为 XUnit