An example of downloading artifacts from a Maven repository using Ansible, including a prebuilt Docker image.
Prerequisites
Install JDK and Maven using existing Ansible modules
ansible-galaxy install geerlingguy.java ansible-galaxy install https://github.com/silpion/ansible-maven.git
- hosts: localhost roles: - { role: ansible-maven } - { role: geerlingguy.java } vars: java_packages: - java-1.7.0-openjdk
Example
From mvn.yml, download any number of Maven artifacts optionally from different repositories
- hosts: localhost vars: mvn_artifacts: - id: org.apache.maven:maven-core:2.2.1:jar:sources dest: /tmp/test.jar # params: -U # update snapshots # repos: # - http://repo1.maven.apache.org/maven2 tasks: - name: copy maven artifacts command: mvn {{ item.params | default('') }} org.apache.maven.plugins:maven-dependency-plugin:get -Dartifact={{ item.id }} -Ddest={{ item.dest }} -Dtransitive=false -Pansible-maven -DremoteRepositories={{ item.repos | default(['http://repo1.maven.apache.org/maven2']) | join(",") }} with_items: mvn_artifacts
Docker
An image with Ansible, JDK and Maven preinstalled is available at csanchez/ansible-maven
.