【问题标题】:Jenkins + Gradle + Artifacts: Deploy only work onceJenkins + Gradle + Artifacts:部署只工作一次
【发布时间】:2017-02-19 03:17:04
【问题描述】:

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

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

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

环境:

  • 詹金斯 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-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 等)过程。

【问题讨论】:

  • 您是否在某处的詹金斯工作中运行gradle build
  • 是的,构建作为任务运行。如果我删除 ~/.gradle ,无论是否将其设置为任务,都会调用 build 。在第二次运行时,无论是否配置了构建,artifactoryPublish 什么都不做。

标签: jenkins gradle artifactory


【解决方案1】:

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

Gradle 构建 sn-p:

buildscript {
  repositories {
    jcenter()
  }

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

注意版本。

【讨论】:

    【解决方案2】:

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

    我必须停用 jenkins 服务器上的 gradle 守护程序(通过 GRADLE_OPTS)。

    【讨论】:

    • 你能说明一下它是如何完成的吗?它会对社区有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 2013-09-17
    • 2017-01-06
    相关资源
    最近更新 更多