通过名字引用另一项目

在整个 Jenkins 的许多地方,咱们都可以用名字来指代另一项目/作业。例如,在某个管线脚本,a Pipeline Script,中,咱们可能想从另一项目 拷贝构件,copy artificats

copyArtifacts projectName: 'myproject'

如果咱们的目标项目名称是简单的字母数字,alphanumeric,并且是一个没有子项目的简单项目,并且在整个 Jenkins 实例中具有唯一的名称,这就是咱们需要做的全部。请继续阅读,了解更复杂的情况......

区分同名的多个项目

如果咱们使用着 文件夹插件,并且咱们有着多个位于不同的文件夹中的同名项目,那么咱们可以使用路径来区分他们,类似于 Unix 文件系统的路径。有两种类型的路径:

绝对路径

绝对路径以正斜杠(/)开始,并通过描述完整的路径来引用某个项目,以便从咱们的 Jenkins 实例的主页导航到该项目。例如,在咱们的 Jenkins 实例根部引用某个项目:

/myproject

或者,引用一个子文件夹中的项目:

/myfolder/myproject

相对路径

相对路径以正斜杠之外的东西开头,并指向与当前项目有关的另一项目。例如,假设咱们有以下绝对路径的项目:

/thatproject
/folder/someproject
/folder/subfolder/myproject
/folder/subfolder/anotherproject

/folder/subfolder/myproject 的某个管道脚本, Pipeline Project,中,咱们可以使用下面这个相对路径引用 /folder/subfolder/anotherproject

anotherproject

并可以用下面这个相对路径来引用 /folder/someproject,其中 .. 表示在父文件夹中查找:

../someproject

并可以使用下面的相对路径,引用 /thatproject

../../thatproject

引用项目内部的组件

某些类型的项目 -- 如 Maven 项目、Matrix 项目和 Multibranch 项目 -- 有着一些子组件。咱们可以用以下方式来引用这些子组件:

Maven 项目

咱们可以引用整个 Maven 项目:

mymavenproject

或 Maven 项目里的某个组:

mymavenproject/my.group

或到某个特定模块的引用:

mymavenproject/my.group$MyModule

Matrix 项目

咱们可以引用某个 Matrix 项目的所有配置:

mymatrixproject

或引用受某个轴线所限制的特定配置,a particular configuration, restricted by a axis:

mymatrixproject/someaxis=somevalue

或受多个轴线的限制:

mymatrixproject/someaxis=somevalue,anotheraxis=anothervalue

多分支的管线

Multibranch Pipelines

咱们可以引用某个特定分支:

mymultibranchproject/mybranch

名字编码

路径中的特殊字符应该用 URL 编码。例如,如果咱们的 Multibranch Pipeline 有一个带有斜线的分支( feature/myfeature ),那么就要用 %2F 替换斜线:

mymultibranchproject/feature%2Fmyfeature

对于 Jenkins 和 Jenkins 插件的开发者

请参阅 Jenkins::getItem() 函数。