问题
I\'m working on a project with dependency X. X, in turn, depends on Y.
I used to explicitly include Y in my project\'s pom. However, it was not used and to make things cleaner, I instead added it to X\'s pom as a dependency. X is marked as a release dependency.
The problem is that after removing Y from my project\'s pom and adding it to X\'s pom, my project isn\'t picking it up on mvn -U clean package
. I know -U update snapshots but not releases.
So, without deleting the ~/.m2/repository directory how can I force a re-download of X\'s pom? Also, I tried running dependency:purge-local-repository
and it didn\'t work either.
回答1:
You cannot make Maven re-download dependencies, but what you can do instead is to purge dependencies that were incorrectly downloaded using mvn dependency:purge-local-repository
See: http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html
回答2:
I just deleted my ~/.m2/repository and that forced a re-download ;)
回答3:
I think following command may help you!
mvn -U clean install
回答4:
Thanks to Ali Tokmen answer. I managed to force delete the specific local dependency with the following command:
mvn dependency:purge-local-repository -DmanualInclude=com.skyfish:utils
With this, it removes utils
from my .m2/repository and it always re-download the utils
JAR dependency when I run mvn clean install
.
回答5:
Project right click-> Maven -> Update Project and check the checkboxes as in the screen shot. It will update releases as well :)
回答6:
mvn clean install -U
-U means force update of dependencies.
If you want to update a single dependency without clean or -U you could just remove it from your local repo and then build.
回答7:
When you added it to X, you should have incremented X's version number i.e X-1.2
Then X-1.2 should have been installed/deployed and you should have changed your projects dependency on X to be dependent on the new version X-1.2
回答8:
If you really want to force-download all dependencies, you can try to re-initialise the entire maven repository. Like in this article already described, you could use:
mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
回答9:
Just delete ~/.m2/repository...../actual_path where the invalid LOC is coming as it forces to re-download the deleted jar files. Dont delete the whole repository folder instead delete the specific folder from where the error is coming.
回答10:
If you know the group id of X
, you can use this command to redownload all of X
and it's dependencies
mvn clean dependency:purge-local-repository -DresolutionFuzziness=org.id.of.x
It does the same thing as the other answers that propose using dependency:purge-local-repository
, but it only deletes and redownloads everything related to X
.
回答11:
Most answers provided above would solve the problem.
But if you use IntelliJ and want it to just fix it for you automatically, go to Maven Settings.
Build,Execution, Deployment -> Build Tools -> Maven
Disable Work Offline
Enable Always update snapshots (Switch when required)
回答12:
Go to build path... delete existing maven library u added... click add library ... click maven managed dependencies... then click maven project settings... check resolve maven dependencies check box..it'll download all maven dependencies
来源:https://stackoverflow.com/questions/7959499/force-re-download-of-release-dependency-using-maven