Force re-download of release dependency using Maven

心不动则不痛 提交于 2019-11-26 10:12:44

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!