清除本地存储库依赖项

目标的dependency:purge-local-repository目的是从本地 maven 存储库中清除(删除和可选地重新解析)工件。此页面描述了插件可用的一些配置选项。

基本用法

插件的默认行为是先解析整个依赖树,然后从本地仓库中删除内容,然后从远程仓库重新解析依赖。

mvn dependency:purge-local-repository

传递依赖解析

默认情况下,插件对所有传递依赖项进行操作。这意味着插件可能会在开始清除过程之前下载某些缺少的依赖项以收集完整的依赖项树信息。

为了避免这个预下载步骤,可以使用“actTranstively”参数将插件配置为仅对项目的直接依赖项进行操作。

mvn dependency:purge-local-repository -DactTransitively=false

依赖包括/排除

可以使用“includes”或“excludes”参数将来自当前项目依赖关系树的特定依赖关系包括或排除在清除和重新解析过程中。默认情况下,所有项目依赖项都会被清除。“包含”选项将此行为更改为仅清除包含的工件。“排除”选项可用于防止清除/刷新某些依赖项。

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>3.3.0</version>
        <executions>
          <execution>
            <id>purge-local-dependencies</id>
            <phase>process-sources</phase>
            <goals>
              <goal>purge-local-repository</goal>
            </goals>
            <configuration>
              <excludes>
                <exclude>[groupId1]:[artifactId1]</exclude>
                <exclude>[groupId2]:[artifactId2]</exclude>
              </excludes>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

也可以使用“include”或“exclude”参数从 CLI 传递包含/排除配置。

mvn dependency:purge-local-repository -Dinclude=org.slf4j:slf4j-api,org.slf4j:log4j-over-slf4j
mvn dependency:purge-local-repository -Dinclude=org.slf4j -DresolutionFuzziness=groupId -Dverbose=true

手动清除

不属于当前项目依赖关系树的特定依赖关系也可以通过使用purge-local-repository目标并设置“manualIncludes”或“manualInclude”参数来清除。任何手动包含的清除工件都将从本地存储库中删除,并且在需要它们之前不会重新解析。例如,这对于刷新父 pom、导入的 pom 或 Maven 插件很有用。

警告,如果从本地 repo 中删除依赖项,在正常构建过程中使用此目标可能会有风险,但在构建的后期需要。这个目标通常在构建结束时是安全的,或者作为构建清理过程的一部分。

mvn dependency:purge-local-repository -DmanualInclude=org.apache:apache

其他吹扫配置

要清除给定 groupId 的所有依赖项,请使用resolutionFuzziness配置参数。

如果既未includes指定也未excludes指定,则清除当前项目的所有依赖项。

您可以在dependency:purge-local-repository中查看完整的 mojo 文档。