【问题标题】:Artifactory jenkins Integration using gradleArtifactory jenkins 使用 gradle 集成
【发布时间】:2017-05-07 06:29:02
【问题描述】:

我设法通过使用 Gradle 将我的工件发布到 Artifactory 中。 但是版本总是未指定(example-unspecified.jar)

如何将 groupId ="com.example" 和版本 'BUILD_NUMBER' 设置为 jenkins??

我想发布类似的东西 example-10.jar(10 是 Jenkins 内部版本号,组:'com.example')

谢谢

【问题讨论】:

    标签: jenkins gradle jenkins-plugins artifactory


    【解决方案1】:

    您需要在build.gradle中设置groupversion

    apply plugin: "java"
    
    group = 'com.company.blah'
    version = project.hasProperty('build_number') ? project.properties['build_number'] : '0.1'
    

    然后构建将产生像"$project.name-${project.version}.jar"这样的工件

    maven 使用group 来组织工件,它是依赖符号"$project.group:$project.name:$project.version" 中的第一项

    所以如果我们在没有任何参数的情况下构建它会产生blah-0.1.jar 如果我们使用参数build_number 构建,它将分配提供的版本。

    例如:gradlew clean build -Pbuild_number=10 将产生blah-10.jar

    【讨论】:

    • 谢谢。如何使版本号 = BUILD_NUMBER??
    • 已更新。我们需要将它从 jenkins 传递给 gradle 构建。从詹金斯看来,它看起来像./gradlew clean build -Pbuild_number=$BUILD_NUMBER
    • 非常感谢。
    • 这是可以在artifactory插件代码中添加的东西吗?:我有:buildInfo = rtGradle.run rootDir: "/dev-test", buildFile: 'build.gradle', tasks: ' clean artifactoryPublish' 而且我看不到:“-Pbuild_number=$BUILD_NUMBER” 可以在那里添加
    【解决方案2】:

    BUILD_NUMBER 由 Jenkins 通过环境变量填充。如果你想从 Gradle 脚本中访问它,你可以这样做:

    def buildNumber = System.getenv("BUILD_NUMBER")
    

    然后在您的工件发布代码中使用buildNumber 变量。

    至于groupId,我真的不明白那里有什么问题。在Jenkins构建期间它不会改变,是吗?因此,您可以在 gradle 脚本中对其进行硬编码。

    作为替代方案,您可以通过项目属性传递必要的信息:

    ./gradlew assemble -PgroupId=com.example -PbuildNumber=$BUILD_NUMBER
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-21
      • 2021-02-02
      • 2016-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      相关资源
      最近更新 更多