【问题标题】: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 是一个很好的工具来帮助你做到这一点。
【解决方案2】:
Gradle 的 Jenkins Artifactory 插件的好处在于它所做的只是应用 Gradle Artifactory plugin(当然,所有代码 - Gradle DSL)。因此,您可以直接在 Gradle 中的代码中应用它,而不是从 Jenkins UI 应用插件。