How to prevent maven to resolve dependencies in local repository

前端 未结 2 2140
礼貌的吻别
礼貌的吻别 2021-02-19 13:01

Is there a way to tell maven (when doing mvn package, mvn site or ...) not to resolve the dependencies from the local repository?

Background of

2条回答
  •  梦谈多话
    2021-02-19 13:36

    Is there a way to tell maven (when doing mvn package, mvn site or ...) not to resolve the dependencies from the local repository?

    No, that's how the whole dependency resolution works (via the local repository).

    Sometimes I get into problems, when previously cached dependencies (e.g. SomeProject-0.7-ALPHA) are no longer available in the remote repository.

    Sorry for stating the obvious but removing dependencies from a remote repository is an horrible practice and leads to... well the kind of troubles you're facing. If possible, avoid doing that.

    As soon as I share my pom with others, they may get into trouble, as they dont have a cached version of that dependency and the dependency can no longer be resolved from the remote repository.

    One way to check that things would work for others would be to purge the dependencies of the project you're going to share from your local repository and to re-resolve them. Of course, doing this manually would be really painful but the good news is that the Maven Dependency Plugin has a purge-local-repository goal for that.

    mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:purge-local-repository  \
        -DreResolve=true \
        -DactTransitively=true \ 
        -Dverbose=true
    

    If this fails, then you know that something is missing and can't be resolved anymore which is basically what you want to know. But you've also lost it so make a backup of your repository if this matters to you.

提交回复
热议问题