Jenkins + Gradle + Artifactory : Deploy only work once

标签 jenkins gradle artifactory

我正在使用 Gradle 和 Jenkins,并且想要将 Artifactory 部署到 Artifactory。不幸的是,当我在 Jenkins 中开始构建时,此部署仅有效一次。

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

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

环境:

  • Jenkins 2.7.3
  • Gradle 3.1
  • Artifactory 4.13.0
  • Jenkins Artifactory 插件 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-集成
  • [x] 捕获并发布构建信息
  • [x] 将 Artifactory 发布到 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 等)过程。

最佳答案

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

Gradle 构建片段:

buildscript {
  repositories {
    jcenter()
  }

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

记下版本。

关于 Jenkins + Gradle + Artifactory : Deploy only work once,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39962709/

相关文章:

jenkins - Jenkins 如何自动启动 VirtualBox 从机?

git - 从 Jenkins 管道捕获 shell 脚本输出

android - 错误:等级:> java.io.IOException:输出jar为空。您是否指定了正确的 '-keep'选项?

java - 找不到方法实现()

gradle - Gradle:解决依赖项 “Could not parse POM”

Jenkins 和 Artifactory

maven - Grails 2.3.6缺少 repo 问题

plugins - 电子邮件 ext 插件用于通过邮件发送 HTML Junit 报告

unit-testing - Jacoco在我的Gradle项目中未显示Spock代码覆盖率

jenkins - 尝试基于 Alpine 构建 Jenkins Docker 镜像时出现 AWT 错误 -