Expand Authors Top

If you have a few years of experience in the Java ecosystem and you’d like to share that with the community, have a look at our Contribution Guidelines.

November Discount Launch 2022 – Top
We’re finally running a Black Friday launch. All Courses are 30% off until next Friday:

>> GET ACCESS NOW

November Discount Launch 2022 – TEMP TOP (NPI)
We’re finally running a Black Friday launch. All Courses are 30% off until next Friday:

>> GET ACCESS NOW

Expanded Audience – Frontegg – Security (partner)
announcement - icon User management is very complex, when implemented properly. No surprise here.

Not having to roll all of that out manually, but instead integrating a mature, fully-fledged solution - yeah, that makes a lot of sense.
That's basically what Frontegg is - User Management for your application. It's focused on making your app scalable, secure and enjoyable for your users.
From signup to authentication, it supports simple scenarios all the way to complex and custom application logic.

Have a look:

>> Elegant User Management, Tailor-made for B2B SaaS

1. Overview

In this tutorial, we'll focus on where Maven stores all the local dependencies locally, which is in the Maven local repository.

Simply put, when we run a Maven build, the dependencies for our project (jars, plugin jars, other artifacts) are all stored locally for later use.

Also keep in mind that, beyond just this type of local repository, Maven supports three types of repositories:

  • Local – Folder location on the local Dev machine
  • Central – Repository provided by Maven community
  • Remote – Organization owned custom repository

Now let's focus on the local repository.

2. The Local Repository

Maven's local repository is a directory on the local machine that stores all the project artifacts.

When we execute a Maven build, Maven automatically downloads all the dependency jars into the local repository. Usually, this directory is named .m2.

Here's where the default local repository is located based on OS:

Windows: C:\Users\<User_Name>\.m2
Linux: /home/<User_Name>/.m2
Mac: /Users/<user_name>/.m2

And for Linux and Mac, we can write in the short form:

~/.m2

3. Custom Local Repository in settings.xml

If the repo isn't present in this default location, it's likely because of some pre-existing configuration.

That config file is located in the Maven installation directory in a folder called conf, with the name settings.xml.

Here's the relevant configuration that determines the location of our missing local repo:

<settings>
    <localRepository>C:/maven_repository</localRepository>
    ...

This is essentially how we can change the location of the local repo. Of course, if we change that location, we'll no longer find the repo at the default location.

The files stored in the earlier location won't be moved automatically.

4. Passing Local Repository Location via Command Line

Apart from setting the custom local repository in Maven's settings.xml, the mvn command supports the maven.repo.local property, which allows us to pass the local repository location as a command-line parameter:

mvn -Dmaven.repo.local=/my/local/repository/path clean install

In this way, we don't have to change Maven's settings.xml.

5. Conclusion

In this brief article, we looked at the Maven local repository default setup.

We also discussed how to tell Maven to work with a custom local repository location.

November Discount Launch 2022 – Bottom
We’re finally running a Black Friday launch. All Courses are 30% off until next Friday:

>> GET ACCESS NOW

Maven footer banner
Comments are closed on this article!