【问题标题】:What does purge-local-repository actually purge?purge-local-repository 实际上清除了什么?
【发布时间】:2017-03-15 21:08:48
【问题描述】:

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

mvn dependency:purge-local-repository

预期的行为是什么?

它会删除(并重新下载?)我的本地存储库中已经存在的所有依赖项,用于 那个特定项目(即我所在的目录)还是会删除 all 我的本地仓库的内容?

【问题讨论】:

    标签: maven plugins maven-dependency-plugin purge


    【解决方案1】:

    默认情况下,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】:

      使用相同的清除但在细节上, 如果项目 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>
      

      希望这会有所帮助,

      【讨论】:

        【解决方案3】:

        关注

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

        我们

        dependency:purge-local-repository
        

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

        【讨论】:

          猜你喜欢
          • 2018-04-12
          • 2013-06-02
          • 2020-11-21
          • 2015-02-26
          • 2017-06-29
          • 2013-06-13
          • 2021-10-25
          • 2011-08-12
          • 1970-01-01
          相关资源
          最近更新 更多