Estou executando o seguinte comando no diretório do projeto maven:
alvo limpo
mvn clean -U
Limpe os pacotes maven no warehouse local do qual o projeto depende
dependência mvn:purge-local-repository
Ele excluirá (e baixará novamente?) Todas as dependências que já existem em meu repositório local para esse projeto específico (ou seja, o diretório em que estou) ou excluirá todo o conteúdo do meu repositório local?
Melhor resposta
Por padrão, purge-local-repository removerá do repositório local todos os arquivos associados às versões de todas as dependências (incluindo transitivas) do projeto em que é executado:
Remova as dependências do projeto do repositório local e, opcionalmente, resolva-as novamente.
Alguns fatores que entram em jogo são:
- Por padrão, o plug-in limpa as dependências transitivas; isso é configurável com escopo por meio de actTransitively .
- Por padrão, todos os artefatos removidos do repositório local são resolvidos novamente; isso é configurável com escopo por meio de reResolve .
- Os arquivos reais limpos do repositório local correspondem a todos os arquivos associados à versão do artefato que foi limpo. Por exemplo, se as dependências
foo:bar:1.0
forem limpas,foo/bar/1.0/*
todos os arquivos no caminho serão removidos. Isso pode ser configurado por meio doversion
parâmetroresolutionFuzziness (seu valor padrão ): artifactId
的值将清除被清除 Artifact 的 Artifact ID 路径下的所有文件。在上面的示例中,foo/bar/**
下的所有文件将被清除(因此,所有版本都被删除)。groupId
的值将清除路径下的所有文件到要清除的 Artifact 的组 ID。在上面的示例中,foo/**
下的所有文件将被清除(因此,所有 Artifact ID 的所有版本都将被删除)。file
的值只会清除正在清除的 Artifact 的文件。在上面的例子中,只有文件bar-1.0.jar*
将被删除(这包括他们可能拥有的任何sha1
)。它不会清除关联的 POM 文件。- 您可以通过使用 list 打印项目的所有依赖项列表来查看将要清除哪些 Artifact 。目标:
可选地添加 excludeTransitive 到此命令,如果您决定不清除传递依赖项。mvn dependency:list
演示: