Repository Connector Plugin

Skip to end of metadata
Go to start of metadata

Plugin Information

Plugin ID repository-connector Changes In Latest Release
Since Latest Release
Latest Release
Latest Release Date
Required Core
1.1.2 (archives)
Sep 10, 2015
token-macro (version:1.5.1)
Source Code
Issue Tracking
Pull Requests
Open Issues
Pull Requests
Dominik Bartholdi (id: imod)
Michael Rumpf (id: mrumpf)
Usage Installations 2014-Oct 1103
2014-Nov 1130
2014-Dec 1113
2015-Jan 1181
2015-Feb 1257
2015-Mar 1355
2015-Apr 1356
2015-May 1452
2015-Jun 1548
2015-Jul 1669
2015-Aug 1683
2015-Sep 1795

Repository Connector adds features around resolving artifacts from a Maven repository like Nexus or Artifactory.
When installing this plugin, you'll get an additional build parameter 'Maven Repository Artifact' and a build step 'Artifact Resolver', allowing you to select versions from a remote repository and to download the artifact.

The Respository Connector Plugin can be used for example to deploy artifacts to target servers and it uses the Sonatype's Aether API internally to resolve artifacts from a repository and to determine the sorting order of versions.


The build parameter 'Maven Repository Artifact' allows for easy version selection and the build step 'Artifact Resolver' lets you download the artifact from a Maven repository without the need to install Maven.

It is possible to use the version selection feature of this plugin alone and let a Maven POM do the artifact download, or you let Jenkins also do the download before a script is invoked. The way you use the plugin is completely up to you.

Using only the version selection feature makes sense when you have Maven installed anyway and you want to have all aspects of the artifact processing under version control (see Maven example below)

Version Selection

String Parameter

You can use a simple string build parameter (e.g. 'VERSION') to enter a version as free text:

  • 1.0.0 - a regular version
  • RELEASE - the latest release version
  • LATEST - the latest version, which is usually a SNAPSHOT version
  • [0-SNAPSHOT,) - a version range

This string parameter can be used in the later stages of the job by specifying the property ${VERSION}. It can even be used in the version field of the Artifact Resolver build step.

Maven Repository Artifact Parameter

The version selection feature is provided by the build parameter 'Maven Repository Artifact':

When you click on "Build with Parameters" you will see a drop-down box with all the versions that have been found in the Maven repository:

The special versions "LATEST" and "RELEASE" are added to the list where the latter is the default selection (new, not yet-released feature, see JENKINS-28323).

The selected version is passed in 2 properties to the build:

  • <groupId>.<artifactId>=<version> (e.g. "commons-collections.commons-collections=1.0.0")
  • <global-repo-name>=<version> (e.g. "central=1.0.0")

Artifact Resolver Build Step

The 'Artifact Resolver' build step allows you to download the specified artifact in a build step. The location where the artifact is downloaded to can be specified by the parameters "target directory" and "target filename":

For passing the parameter version use




Global Configuration

The repositories to resolve the artifacts from, can be configured in Jenkins' global configuration section:


The following Maven POM downloads the artifact, and passes the path to the artifact to a shell script for further processing. The shell script also gets an environment parameter which comes from a "Choice Paramater" to determine the target environment on which to deploy the artifact.

Example deployment POM
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="" xmlns:xsi=""
  <name>Maven deployment template</name>







                <!-- dump all available properties -->
                <echoproperties />
                <exec dir="." executable="cmd" osfamily="windows">
                  <arg value="/c"/>
                  <arg value="deploy.cmd ${} ${environment} ${distversion}"/>
                <exec dir="." executable="/bin/bash" osfamily="unix">
                  <arg value="-c"/>
                  <arg value="./ ${} ${environment} ${distversion}"/>

NOTE: This is just a suggestion. Instead of forking a shell script, all the necessary steps could als be performed by the Antrun Maven plugin.

Help and Support

For Help and support please use the Jenkins Users mailing list.
The comment list below is not monitored.

Version History

1.1.2 (10. Sep 2015)

  • Implemented JENKINS-28323: Add RELEASE and LATEST to version selection dropdown list
  • fix JENKINS-27678: NullPointerException when non proxy hosts is not set
  • Implemented JENKINS-27641: Name of version selection build parameter should be customized
  • fix JENKINS-17541 target directory does not expand token macro parameters
  • fix JENKINS-29166 list of artifacts stored on maven repository not refreshed

1.1.1 (28. Feb 2015)

1.1.0 (2. Feb 2015)

1.0.1 (16. Aug. 2014)

1.0.0 (18. July 2014)

  • fix JENKINS-17541 target directory does not expand token macro parameters
  • integrate PR #3 (thanks to mrumpf!)
    • Sort the list of Maven repositories in the global configuration page
    • Added I18N and translated all help files and texts to german
    • Extracted the global configuration from the ArtifactResolver and moved it into the central class GlobalConfiguration
    • Added the version selection build parameter
    • When your ArtifactResolver build step and the build parameter is used in one job, the version, selected by the builld parameter overrides the version of the ArtifactResolver build step.
    • Added proxy support which makes the plugin usable in corporate environments

0.8.2 (18. Feb. 2012)

0.8.0 (18. Sep. 2011)

  • add support for variable resolving in configuration


  • update to aether 1.12 and fix a classloader issue


  • update to aether 1.11 and fix update policy issue


  • now supports to configure the repository update policy (for earch builder individually)


  • Inital


plugin-external plugin-external Delete
plugin-maven plugin-maven Delete
token-consumer token-consumer Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. May 25, 2011

    wolfgang haefelinger says:

    Why would I ever wish to download an artefact from a Maven repository as additio...

    Why would I ever wish to download an artefact from a Maven repository as additional build step? Perhaps when using Ant without Ivy? Nevertheless, the missing functionality is something urgently needed.

  2. Jul 07, 2011

    Andrew Morando says:

    Hi, I have a parameterized build and I wish to use the value of the parameter a...


    I have a parameterized build and I wish to use the value of the parameter as my "Version" when retrieving the artifact.

    e.g. I have defined a parameter called My_Version.  the user enters "1.0.1-SNAPSHOT"

    I have tried to use $My_Version, %My_Version% and many others, but nothing works.

    Is there a way to do this?

    Thank you.


    1. Mar 22, 2012

      Fernando Borrego Polo says:

      You can use ${VERSION}

      You can use ${VERSION}

      1. Sep 21

        sushil k says:

        Hi, I tried with $ Unknown macro: {VERSION} but its still not working. I want ...

        Hi, I tried with $

        Unknown macro: {VERSION}

        but its still not working. I want version parameter value to pass into a shell script which I'm calling in "publish over SSH". The problem is when I use $

        Unknown macro: {group_id.artifact_id}

        and pass it to shell script then unix treat these '.' periods in special way and not getting the the value of the expression. Your quick help will be appreciated. 

  3. Mar 22, 2012

    Fernando Borrego Polo says:

    I just want to say I really love this plugin, we have artifacts generated by a t...

    I just want to say I really love this plugin, we have artifacts generated by a tool in a external server and we needed to download them as part of the deployment. The only thing I don't understand is what are the fields "Release update policy" and "Snapshot update policy" for.

  4. Jun 06

    Leon Katz says:

    Couple of usability issues. Bug 20263 is big problem, especially if you start us...

    Couple of usability issues. Bug 20263 is big problem, especially if you start using this for many jobs. It would be nice if you could set the storage for version files in job, or just have it in the workspace by default. I have a DEV job and a QA job, for the DEV job, I want to see both snapshot and release versions, and for the QA jobs, I only want to see the release versions. It was fine when I only had one of the jobs, because i only had to set the release repo for the plugin repos, but now i need to get both release and snapshot repos so both versions show up in the version dropdown which makes the list larger and defeats the purpose of having release versions.

    To get around bug 20263, I have  a separate job that runs a shell command to delete the directory configured for storing the version information in the global config. Then this job has to reload all of the versions when I run it, which takes some time. I need to have this clear job run after each run of the current job that uses this plugin, and I have to run this clear job every time I do a build so it will see the new versions next time I run the resolver job.