Jenkins Groovy脚本

vkc1a9a2  于 2023-08-02  发布在  Jenkins
关注(0)|答案(2)|浏览(185)

我正在努力在Jenkins中使用groovy脚本-我想使用JobDSL插件自动生成一个作业。
下面的变量是定义的,我想把它们传递给步骤{shell{command(...)}},但我不设法做得到的效果

def jobName = 'job-name'
def group = 'group'
def project = 'project-name'
def ext = 'jar'
.
.
.

job(jobName) {
.
.
.
    steps {
        shell{
            command('''downloadUrl=$(curl -s "http://{nexus-url}/service/rest/v1/search?repository=maven-public&group=$group&name=$project&maven.extension=$ext"...''')
        }
    }
}

字符串
我在构建步骤中得到的结果是

downloadUrl=$(curl -s "http://nexus.lab.pl/service/rest/v1/search?repository=maven-public&group=$group&name=$project&maven.extension=$ext..."


我尝试了很多方法来推动变量,但我找不到合适的方法。有没有人可以教我如何获得所需的效果?
尝试了很多方法来获得bash风格的正确结果

qaxu7uf2

qaxu7uf21#

三重单引号字符串不会被插值,因此不能在其中使用$variable语法。请参见字符串摘要表。
你可以使用双引号字符串,但你也需要转义字符串本身的双引号和不相关的美元符号:

command("downloadUrl=\$(curl -s \"http://{nexus-url}/service/rest/v1/search?repository=maven-public&group=$group&name=$project&maven.extension=$ext\"...")

字符串
或者,您也可以使用Dollar slashy字符串来避免转义:

command($/downloadUrl=$(curl -s "http://{nexus-url}/service/rest/v1/search?repository=maven-public&group=$group&name=$project&maven.extension=$ext"... /$)

vaqhlq81

vaqhlq812#

对于maven您可以将maven plugin与pom、settings和其他maven staff一起使用
Jenkins还提供httpRequest plugin
最后,您可以使用groovy urlexample

相关问题