Jenkins + Gradle + Artifacts:只部署一次工作

时间:2016-10-10 16:27:20

标签: jenkins gradle artifactory

我正在使用Gradle和Jenkins,并希望将工件部署到Artifactory。不幸的是,当我在Jenkins中开始构建时,此部署只能运行一次。

如果我删除Jenkins服务器上的工作区和〜/ .gradle文件夹,则部署将再次运行。仅删除工作区是不够的。

对我来说似乎是个错误。我是否有任何未知版本冲突。或者是我看不到的不同之处。谢谢你的帮助。

环境:

  • Jenkins 2.7.3
  • Gradle 3.1
  • Artifactory 4.13.0
  • Jenkins Artifactory Plugin 2.7.2

Gradle构建脚本:(基于jfrog的示例)

buildscript {
  repositories {
    jcenter()
  }

  dependencies {
    classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '4.4.5')
  }
}

allprojects {
  apply plugin: 'java'
  apply plugin: 'maven-publish'

  repositories {
    jcenter()
  }

  group = 'org.jfrog.example.gradle'
  version = '1.0.1-SNAPSHOT'
  status = 'integration'
}

artifactory {
  publish {
    defaults {
        publishConfigs('archives')
    }
  }
}

// Setting this property to true will make the artifactoryPublish task
// skip this module (in our case, the root module):
artifactoryPublish.skip = true

Jenkins Artifactory插件设置:

  • [x] Gradle-Artifactory-Integration
  • [x]捕获并发布构建信息
  • [x]将工件发布到Artifactory
  • [x]发布Maven描述符
  • [x]使用Maven兼容模式

停用休息(未设置)。

登录Jenkins(控制台输出),第二次运行时更改了版本并更改了源代码:

Jenkins Artifactory Plugin version: 2.7.2
[Gradle] - Launching build.
[CdExampleArtifactory] $ cmd.exe /C '""C:\Program Files (x86)\Jenkins\tools\gradle-3.1\bin\gradle.bat"' --init-script c:/temp/init-artifactory8368571638486556211gradle artifactoryPublish && exit %%ERRORLEVEL%%"
:artifactoryPublish
:api:artifactoryPublish
:services:artifactoryPublish
:shared:artifactoryPublish
:services:webservice:artifactoryPublish

BUILD SUCCESSFUL

Total time: 2.422 secs
Build step 'Invoke Gradle script' changed build result to SUCCESS
Finished: SUCCESS

看起来任务不会启动构建(jar等)过程。

2 个答案:

答案 0 :(得分:3)

使用最新的Gradle Artifactory Plugin版本4.4.7解决了Gradle 3.1的兼容性问题。

Gradle build snippet:

buildscript {
  repositories {
    jcenter()
  }

  dependencies {
    classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '4.4.7')
  }
}

请注意版本。

答案 1 :(得分:0)

我找到了解决问题的方法。

我必须在jenkins服务器上停用gradle deamon(通过GRADLE_OPTS)。