我正在从 Maven 项目目录中运行以下命令:
mvn dependency:purge-local-repository
预期的行为是什么?
它会删除(并重新下载?)我的本地存储库中已经存在于该特定项目(即我所在的目录)的所有依赖项,还是会删除我本地存储库的所有内容?
我正在从 Maven 项目目录中运行以下命令:
mvn dependency:purge-local-repository
预期的行为是什么?
它会删除(并重新下载?)我的本地存储库中已经存在于该特定项目(即我所在的目录)的所有依赖项,还是会删除我本地存储库的所有内容?
默认情况下,purge-local-repository
将从本地存储库中删除与运行它的项目的每个依赖项(包括传递)的版本相关联的所有文件:
从本地存储库中删除项目依赖项,并可选择重新解析它们。
发挥作用的几个因素是:
actTransitively
参数进行配置。reResolve
参数进行配置。foo:bar:1.0
清除了依赖项,则该路径下的所有文件foo/bar/1.0/*
都将被删除。这可以通过resolutionFuzziness
参数进行配置(其默认值为version
):
artifactId
将清除被清除工件的工件 ID 路径下的所有文件。在上面的示例中,所有文件foo/bar/**
都将被清除(因此,所有版本都将被删除)。groupId
将清除路径下的所有文件,以清除正在清除的工件的组 ID。在上面的示例中,foo/**
将清除下面的所有文件(因此,所有工件 ID 的所有版本都将被删除)。file
只会清除正在清除的工件的文件。在上面的示例中,只会bar-1.0.jar*
删除文件(这包括sha1
他们可能拥有的任何文件)。它不会清除相关的 POM 文件。您可以通过打印具有目标的项目的所有依赖项列表来查看将清除哪些工件list
:
mvn dependency:list
如果您决定不清除传递依赖项,则可以选择添加excludeTransitive
到此命令。
使用相同的清除但在细节上,如果项目 A 和项目 B(Jar)在本地构建并且项目 A 依赖于 B(在本地 Repo 中)可以像这样解决
mvn 依赖:purge-local-repository -Dinclude=com.xxxx.projectB:projectB
并在项目 A 中添加依赖项将解决该问题。
<dependency>
<groupId>com.xxxx.projectB</groupId>
<artifactId>projectB</artifactId>
<version>${project.version}</version>
</dependency>
希望这可以帮助,
下列的
http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html
我们那个
dependency:purge-local-repository
从本地存储库中删除项目依赖项,并可选择重新解析它们。