Referencing another project by name

In many places throughout Jenkins, you can refer to another project/job by name. For example, in a Pipeline Script, you might want to plugin:copyartifact/[copy artifacts] from another project:

copyArtifacts projectName: 'myproject'

That’s all you need to do if your target project’s name is simply alphanumeric, and is a simple project without subprojects, and has a unique name throughout your entire Jenkins instance. Read on for more complex scenarios…

Differentiating between multiple projects with the same name

If you’re using the plugin:cloudbees-folder[Folders Plugin] and you have multiple projects with the same name that are in different folders, you can differentiate between them using a path, similar to a Unix filesystem path. There are two types of paths:

Absolute paths

Absolute paths begin with a forward slash, and refer to a project by describing the complete path to navigate to the project from the home page of your Jenkins instance. For example, to reference a project in the root of your Jenkins instance:

/myproject

Or, to reference a project in a subfolder:

/myfolder/myproject

Relative paths

Relative paths begin with something other than a forward slash, and refer to another project in relation to the current project. For example, say you have projects with the following absolute paths:

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

In a Pipeline Script for /folder/subfolder/myproject, you could refer to /folder/subfolder/anotherproject using this relative path:

anotherproject

And you could refer to /folder/someproject using this relative path, where .. means to look in the parent folder:

../someproject

And you could refer to /thatproject using this relative path:

../../thatproject

Referencing components inside projects

Some types of projects — such as Maven projects, Matrix projects, and Multibranch projects — have subcomponents. You can refer to these subcomponents as follows:

Maven projects

You can refer to an entire Maven project:

mymavenproject

Or to a group within a Maven project:

mymavenproject/my.group

Or to a particular module:

mymavenproject/my.group$MyModule

Matrix projects

You can refer to all configurations of a Matrix project:

mymatrixproject

Or to a particular configuration, restricted by a axis:

mymatrixproject/someaxis=somevalue

Or restricted by multiple axes:

mymatrixproject/someaxis=somevalue,anotheraxis=anothervalue

Multibranch Pipelines

You can refer to a particular branch:

mymultibranchproject/mybranch

Name encoding

Special characters in paths should be URL-encoded. For example, if your Multibranch Pipeline has a branch with a slash in it (feature/myfeature), replace the slash with %2F:

mymultibranchproject/feature%2Fmyfeature

For developers of Jenkins and Jenkins Plugins

See the Jenkins::getItem() function.