Parallel Maven Deployment with Jenkins and Artifactory

Parallel Maven Deployment with Jenkins and Artifactory

There are many reasons why you may want to use Artifactory as yourMaven repository. For example, it allows tagging Maven artifacts with custom properties, so that they can later be found based on specific criteria. It stores build metadata about your artifacts, and allows controlling the repositories used by the Maven build, without modifying the pom file. In this post, I’d like to focus on one specific advantage, Maven deployments in Jenkins.

Reduce Maven Build Time with Parallel Deployment

JFrog hasrecently released version 3.6.1of theJenkins Artifactory Plugin. This release includes a significant enhancement when it comes to Maven deployments – it is now parallel! You now have the option of setting the number of threads assigned to the deployment of Maven artifacts.

This should actually reduce the build time dramatically, especially if your build creates and deploys a large amount of artifacts.

If you’re already using the plugin to build your code, after upgrading the Artifactory Plugin, without changing any of your build configuration,the deployment time should be reduced to a third of what it used to be. By default, Jenkins will use three threads of the deployment, but you have the option of changing this default from within your pipeline code.

If you’re already using the Artifactory pipeline APIs, then your script should include this section, which defines theMaven deployment using declarative syntax. Notice the new threads property which is now supported.

rtMavenDeployer ( id: 'deployer-unique-id', serverId: 'Artifactory-1', releaseRepo: 'libs-release-local', snapshotRepo: 'libs-snapshot-local', threads: 6 // The default value is 3 )

If you’re using thescripted syntax, you can set the threads count on the deployer as follows:

rtMaven.deployer.threads = 6

Read more aboutMaven builds with Jenkins and Artifactory, and get started with the latest version of the Jenkins Artifactory Plug-in.