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

时间:2018-06-25 16:09:41

标签: 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
}

此功能将确定我要用来发布工件的版本。 接下来,我使用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命令,以在此阶段跳过测试。

1 个答案:

答案 0 :(得分:1)

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

以此添加诸如'-x test -Pversion=' + version

之类的必要参数。

对于我的用例,我在 build.gradle 中添加了一个version属性:version = "${version}",因此可以使用上面的命令覆盖它。