Continuing with my previous posts on Artifactory, in this post I will write about deploying my own jar files into the Artifactory repository. So that other projects which depends on my jar files will not have to look into any other place, they just can connect to the Artifactory repository and get the latest copy of my jar files.
I will write two ways, one using the Artifactory web GUI and second one from the command prompt.
Deploying from Artifactory Web GUI:
Deploying artifacts from Artifactory Web GUI is very simple and do not require any configuration change. So compile and package your project, get the jar file and just upload the file, that’s it.
In this example I will deploy a snapshot project in the repository. Browse and upload the jar file.
Artifactory will automatically generate the pom file after the jar file is uploaded.
Now as I am uploading a snapshot project, so I will select the default local snapshot repository (these default repositories come with Artifactory, we can create our own as per our requirement)
If required we can change the pom file generated by Artifactory by using the POM Editor. If everything is ok, click on Deploy Artifact button to deploy the Artifact in the repository.
Now we can see the artifact in the repository.
Deploying artifacts from command line:
Here we have to do some configurations.
First of all we have to find the repository element where we are going to deploy the artifact. For that just go to Artifacts->Tree Browser and click on the repository name, (for this example we are going to deploy the artifact in the libs-snapshot-local repository) in the Distribution Management section we will get the required information. Copy the <distributionManagement> element.
Open the pom.xml file for the project, and paste the <distributionManagement> element that we copied. Edit the <id> of <distributionManagement> and set it same as the <server> element we configured in our settings.xml file (please see my previous post Configuring Artifactory to use authentication for more information).
Now deploy the project.
Oh no…. some error…. Access denied….hmmmm some permission related issue.
To deploy some artifact in the repository, the user we configured in the <server> section must have deploy privilege. In my previous post I showed how to connect using LDAP authentication. By default an user has only read privilege. So we must assign deploy privilege to the user.
One way is to create a group and assign deploy privilege to the group and make all the users (who will deploy into the repository) member of that group. Go to Admin –> Security –> Groups and click on New button.
Enter the name of the group and click on Create button.
Go to Admin –> Security –> Permissions and click on New button.
Enter the name of this permission settings, as I am going to deploy only in local repositories configured here, so I have selected only the Any Local Repository.
Go to Groups tab and select the Deploy privilege for the deployer group and click on Create button.
Go to Admin –> Security –> Users and select the user we want to add to the deployer group. From the Add/Remove Selected User(s) from Group list, select deployer group and click on Add to button
User successfully added to deployer group, now we can proceed to deploy the project again.
Deploying again, and this time deployment is successful .
We can see the deployed project in the repository.
Instead of editing pom.xml file and adding the <distributionManagement> element, we can deploy the project into the repository directly from the command line.
mvn deploy:deploy-file -DrepositoryId=central -Durl=http://192.168.10.75:8081/artifactory/libs-snapshot-local -DgroupId=org.mkcl -DartifactId=mvntest -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=target/mvntest-1.0-SNAPSHOT.jar