【问题标题】:Is there a jenkins job-dsl block/code for defining Gradle-Artifactory plugin configuration?是否有用于定义 Gradle-Artifactory 插件配置的 jenkins job-dsl 块/代码?
【发布时间】:2016-03-18 19:18:26
【问题描述】:

在 jenkins 工作中,我使用 gradle-artifactory 插件将工件发布到 Artifactory 中的特定路径(在 git 项目的 build.gradle 中提到)。
我想通过 job-dsl 获得我的 Jenkins 工作。 gradle-artifactory 插件配置的 job-dsl 代码/块是什么?
我尝试使用ArtifactoryGradleConfigurator 类,但它不起作用。

【问题讨论】:

    标签: gradle artifactory jenkins-job-dsl


    【解决方案1】:

    job dsl 尚不支持 artifactory 插件。您需要做的是通过configure block 自己创建相应的 XML 配置。以下是您可以开始的示例:

    job('artifactory-config') {
      configure {
        it / buildWrappers / 'org.jfrog.hudson.gradle.ArtifactoryGradleConfigurator' {
          deployMaven 'false'
          deployIvy 'false'
          deployBuildInfo 'true'
          includeEnvVars 'false'
          deployerCredentialsConfig {
            credentialsId 'foobar'
            overridingCredentials 'false'
          }
        }
      }
    }
    

    您需要做的实际配置要广泛一些。只需查看您工作的 config.xml,您就会在其中找到ArtifactoryGradleConfigurator 的 XML 标记。它看起来像这样:

    <project>
      <buildWrappers>
        <org.jfrog.hudson.gradle.ArtifactoryGradleConfigurator">
          <deployMaven>false</deployMaven>
          <deployIvy>false</deployIvy>
          <deployBuildInfo>true</deployBuildInfo>
          <includeEnvVars>false</includeEnvVars>
          <deployerCredentialsConfig>
            <credentials>
              <username></username>
              <password></password>
            </credentials>
            <credentialsId></credentialsId>
            <overridingCredentials>false</overridingCredentials>
          </deployerCredentialsConfig>
          <resolverCredentialsConfig>
            <credentials>
              <username></username>
              <password></password>
            </credentials>
            <credentialsId></credentialsId>
            <overridingCredentials>false</overridingCredentials>
          </resolverCredentialsConfig>
        </org.jfrog.hudson.gradle.ArtifactoryGradleConfigurator>
      </buildWrappers>
    </project>
    

    您需要知道的一件重要事情是,您不需要配置整个块。但是当您错过任何重要的 XML 标记时,将生成作业,但您不会在 UI 中看到配置。只需尝试以 1:1 的比例生成 XML。 Jenkins Job DSL Playground 是一个很好的工具来帮助你做到这一点。

    【讨论】:

    • 谢谢!我想出了我错过了什么,因为我在新的詹金斯盒子上做这个。我忘记安装 gradle 插件。我知道,那是愚蠢的!一旦我安装了它,它就可以很好地识别工件名称和 URL。但在我单击刷新按钮之前,它无法识别存储库名称。然后这件事有帮助。 issues.jenkins-ci.org/browse/JENKINS-26997.
    【解决方案2】:

    Gradle 的 Jenkins Artifactory 插件的好处在于它所做的只是应用 Gradle Artifactory plugin(当然,所有代码 - Gradle DSL)。因此,您可以直接在 Gradle 中的代码中应用它,而不是从 Jenkins UI 应用插件。

    【讨论】:

      猜你喜欢
      • 2020-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多