Question

I’m using Maven 3.1.1. In one of my projects, I reference another one of my projects …

<dependencies>
    <dependency>
        <groupId>org.mainco.subco</groupId>
        <artifactId>myprojectA</artifactId>
        <version>${project.version}</version> 
    </dependency>
</dependencies>

The above is dependent on a couple other of my projects. However, when I run “mvn clean install,” Maven attempts to download these artifacts instead of just using what’s in my local repository. How do I get Maven to only download things if they do not exist in my local repository? Here’s the output of what I’m seeing …

davea$ mvn clean install
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building subco admin Module 57.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://download.java.net/maven/2/org/mainco/subco/myprojectA/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.java.net/maven/2/org/mainco/subco/subco/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.java.net/maven/2/org/mainco/subco/projectB/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.java.net/maven/2/org/mainco/subco/projectC/57.0.0-SNAPSHOT/maven-metadata.xml
[INFO]
Was it helpful?

Solution 2

You may control the update frequency by configuring repositories in the $USER_HOME/.m2/settings.xml file. Specifically, change the updatePolicy to a value that results in less frequent updates.

This Stackoverflow answer has more detail.

OTHER TIPS

If you use offline flag it will use your libraries from local repo.

mvn clean install -o 

If you want to update some jars but not the snapshots of locally installed ones you should use the -nsu (--no-snapshot-updates) flag to prevent Maven from fetching the latest snapshot from the main repository. Using -o will prevent it from fetching other upgrades and (often) essential maven jars from remote repositories.

In my experience, none of that works once maven has "decided" that it must download the file from an specific server.

Configure updatePolicy a other suggest, but in order to suceed, you should go to the folder inside the local repository where the jar is, and delete a file named "_maven.repositories". Delete also al files ending in ".lastUpdated". Also "m2e-lastUpdated.properties" if you are using eclipse plugin.

You can setup repositories in the

settings.xml

file of your maven install.

Read more about it on the Maven configuration webpage.

I know this sounds ridiculous ;-) But one way to do it is to set the DNS entry for the maven repositories to localhost, so it fails 100% since the host can't be resolved.

/etc/hosts

# Comment this in/out as needed.
127.0.0.1 download.java.net

Note if you don't want to use localhost, you could use one of the IPs mentioned here, for example, 254.0.0.1. These IPs are reserved for future use, and thus unused.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top