代码之家  ›  专栏  ›  技术社区  ›  pkaramol

清除本地存储库实际上清除了什么?

  •  18
  • pkaramol  · 技术社区  · 9 年前

    我正在maven项目目录中运行以下命令:

    mvn dependency:purge-local-repository
    

    预期的行为是什么?

    它会删除(并重新下载?)我的本地存储库中已存在的所有依赖项 那个特别的项目 全部的 我的本地回购的内容?

    3 回复  |  直到 8 年前
        1
  •  17
  •   Tunaki    9 年前

    默认情况下, 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 如果您决定不清除传递依赖项,则使用此命令。

        2
  •  1
  •   Rajesh    7 年前

    使用相同的吹扫,但更详细, 如果项目A和项目B(Jar)构建在本地,而项目A依赖于B(在本地Repo中),则可以如下解析:

    mvn依赖项:清除本地存储库-Dinclude=com.xxxx.projectB:projectB

    并且在项目A中添加依赖项将解决该问题。

    <dependency>
                    <groupId>com.xxxx.projectB</groupId>
                    <artifactId>projectB</artifactId>
                    <version>${project.version}</version>
                </dependency>
    

    希望这有帮助,

        3
  •  0
  •   J Fabian Meier    9 年前

    下列的

    http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html

    dependency:purge-local-repository
    

    从本地存储库中删除项目依赖项,并可选地重新解析它们。