Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 version listsversions.

Usage

The build parameter 'Maven Repository Artifact' can be used for allows easy version selection and the build step 'Artifact Resolver' to lets you download the artifact from the 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 only makes sense when you have Maven installed anyway and you want to have all aspects of the artifact processing under version control . That basically means you let the job just select the version and leave the task to download the artifact and to deploy it to a target server(see example below)

Version Selection

String Parameter

...

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":

Image Modified

Global Configuration

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

Image Modified

Example

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.

Code Block
langxml
titleExample deployment POM
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0   http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.foobar.deploy.maven</groupId>
  <artifactId>maven-deploy-template</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>Maven deployment template</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<!-- The selected version is currently set as the name of the repository, given for the Maven repository -->
	<central>RELEASE</central>
	<distversion>${central}</distversion>
  </properties>

  <dependencies>
    <dependency>
      <groupId>com.foobar.templates</groupId>
      <artifactId>maventemplate-ear</artifactId>
      <version>${distversion}</version>
      <type>ear</type>
    </dependency>
  </dependencies>

  <scm>
    <connection>scm:git:https://yourgitserver/jenkins-deploy-job-maven.git</connection>
    <developerConnection>scm:git:https://yourgitserver/jenkins-deploy-job-maven.git</developerConnection>
  </scm>

  <ciManagement>
    <system>jenkins</system>
    <url>https://yourjenkinsserver/jenkins/</url>
  </ciManagement>

  <repositories>
    <repository>
      <id>project</id>
      <url>https://yourreposerver/nexus/content/groups/public/</url>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>project</id>
      <url>https://yourreposerver/nexus/content/groups/public/</url>
    </pluginRepository>
  </pluginRepositories>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <phase>compile</phase>
            <configuration>
              <target>
			    <!-- dump all available properties -->
			    <echoproperties />
                <exec dir="." executable="cmd" osfamily="windows">
                  <arg value="/c"/>
                  <arg value="deploy.cmd ${maven.dependency.com.foobar.templates.maventemplate-ear.ear.path} ${environment} ${distversion}"/>
                </exec>
                <exec dir="." executable="/bin/bash" osfamily="unix">
                  <arg value="-c"/>
                  <arg value="./deploy.sh ${maven.dependency.com.foobar.templates.maventemplate-ear.ear.path} ${environment} ${distversion}"/>
                </exec>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <profiles>
  </profiles>
</project>

Help and Support

Jira Issues
columnstype;key;summary
width85%
anonymoustrue
titleOpen issues
urlhttp://issues.jenkins-ci.org/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=project+%3D+JENKINS+AND+status+in+%28Open%2C+%22In+Progress%22%2C+Reopened%29+AND+component+%3D+%27repository-connector-plugin%27

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

Version History

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

0.7.0

  • update to aether 1.12 and fix a classloader issue

0.6.1

  • update to aether 1.11 and fix update policy issue

0.6

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

0.5

  • Inital