Including a local package as a Maven dependency

Lately I’ve been tasked with developing a Java library for internal use. For testing, its proved useful to package the library for local use. This article describes how to add a Jar file to a local Maven repository for use in your own testing and development.

Create your local Maven repository

Your local Maven repository lives within the project you are developing for. Creating your local repository is as simple as making a new directory.

mkdir repo

Adding your artifact into your local Maven repository

Once you have a repository, you can deploy your artifact into it. This uses the mvn deploy goal and requires a few parameters:

url         # the location of your repo
file        # the location of your jar file
groupId     # your group id (com.sookocheff)
artifactId  # your artifact id (devlib)
packaging   # jar
version     # version number

Putting this together gives us the following command:

mvn deploy:deploy-file -Durl=file:///path/to/repo/ -Dfile=devlib-0.1.jar
-DgroupId=com.sookocheff -DartifactId=devlib -Dpackaging=jar -Dversion=0.1

After running this command, Maven will place your jar file in the local repo/ directory in the required format.

Adding your local repository to your Pom file

Now you can edit your pom.xml file to add the local repository to use for testing.

<repositories>
  <repository>
    <id>project.local</id>
    <name>project</name>
    <url>file:${project.basedir}/repo</url>
  </repository>
</repositories>

Adding your dependency

Now you can add your jar file as a dependency in the usual way.

<dependency>
  <groupId>com.sookocheff</groupId>
  <artifactId>devlib</artifactId>
  <version>0.1</version>
</dependency>

Committing your Changes

You can also safely commit the repo/ folder and your updated pom.xml for other developers to use.

maven  java 

See also

comments powered by Disqus