How to download a package using Maven from Artifactory?

Sample Code

  • https://github.com/devopsschool-demo-labs-projects/artifactory-sample-code
  • Method # 1 – Using Profile – setting.xml with “repositories” and pluginRepositories element
  • Method # 2 – setting.xml with mirrors element. Belew content is for this only. To reproduce a demo, do following

Step 1 – You must have 3 Module. eg. chat, email

Step 2 – mail module must have 1 internal and 1 external dependency. eg. chat is dependent on mail2.0 and junit. e.g Chat pom.xml

 <dependencies>
    <dependency>
      <groupId>com.devopsschool.software</groupId>
      <artifactId>mail</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

Step 3 – Make sure that you have all dependent packages in Artifactory repo already exist. e.g mail must in artifactory’s local repo and junit must be in remote repo.

Step 4 – Make sure you have one group repo containing all dependent repo

Step 5 – If you are using same machine for demo, delete following file.

Removing Dependent Package from Local repo - just for demo
$ cd /root/.m2/repository/com/devopsschool/software
$ rm -rf *
$ cd /root/.m2/repository
$ rm -rf junit

Step 6 – How to force Maven to download a all package from Artifactory rather maven central?

  • Mirror element in setting.xml
  • https://github.com/devopsschool-demo-labs-projects/helloworld-java-maven
  • Make sure “mirror id” must match with “server id”.
   <mirror>
      <id>devopschool</id>
      <name>Maven Repository Manager running on repo.mycompany.com</name>
      <url>http://192.168.3.61:8082/artifactory/devopsschool-group/</url>
      <mirrorOf>*</mirrorOf>
    </mirror>

Step 7. Work with CHAT Module and experience download from Artifactory

Rajesh Kumar
Follow me