通过 Groovy 脚本设置 Artifactory Jenkins 插件

Setting up Artifactory Jenkins plugin via Groovy scripts

我试图在初始化时通过 Groovy 脚本向 Jenkins 添加 Artifactory 配置,但是我收到以下错误

groovy.lang.GroovyRuntimeException: Could not find matching constructor for: org.jfrog.hudson.ArtifactoryServer(java.lang.String, java.lang.String, org.jfrog.hudson.util.Credentials, org.jfrog.hudson.util.Credentials, java.lang.Integer, java.lang.Boolean)

下面是我运行的代码

詹金斯版本:2.46.3 Artifactory 插件版本:2.11.0

import jenkins.model.*
import org.jfrog.*
import org.jfrog.hudson.*
import org.jfrog.hudson.util.Credentials;

def inst = Jenkins.getInstance()

def desc = inst.getDescriptor("org.jfrog.hudson.ArtifactoryBuilder")

def deployerCredentials = new Credentials("admin", "password")
def resolverCredentials = new Credentials("", "")

def sinst = [new ArtifactoryServer(
  "server-id",
  "http://localhost:8081/artifactory",
  deployerCredentials,
  resolverCredentials,
  300,
  false )
]

desc.setArtifactoryServers(sinst)

我正在寻找相同问题的解决方案,并想通了:

import jenkins.model.*
import org.jfrog.*
import org.jfrog.hudson.*
import org.jfrog.hudson.util.Credentials;

def inst = Jenkins.getInstance()

def desc = inst.getDescriptor("org.jfrog.hudson.ArtifactoryBuilder")

def deployerCredentials = new CredentialsConfig("admin", "password", "")
def resolverCredentials = new CredentialsConfig("", "", "")

def sinst = [new ArtifactoryServer(
  "main",
  "http://localhost:8081/artifactory",
  deployerCredentials,
  resolverCredentials,
  300,
  false,
  3 )
]

desc.setArtifactoryServers(sinst)

desc.save()

此外,我找到了一种使用凭据插件执行此操作的方法

import java.lang.System
import hudson.model.*
import jenkins.model.*
import org.jfrog.*
import org.jfrog.hudson.*
import org.jfrog.hudson.util.Credentials;

def inst = Jenkins.getInstance()
def artifactoryDesc = inst.getDescriptor("org.jfrog.hudson.ArtifactoryBuilder")

CredentialsConfig deployerCredentials = new CredentialsConfig(new Credentials("credentialID", "credentialID"), "credentialID", false)

println "--> Configuring Artifactory... "
def ArtInst = [new ArtifactoryServer(
  "artifactiory",
  "https://servername:8443/artifactory",
  deployerCredentials,
  null,
  300,
  false,
  3 )
]

artifactoryDesc.setArtifactoryServers(ArtInst)
artifactoryDesc.setUseCredentialsPlugin(true)
artifactoryDesc.save()
println "--> Configuring Artifactory... done"