Árvore de dependência MVN

Arvore De Dependencia Mvn



“Dependências são códigos externos e trechos importados em seu projeto para fornecer funcionalidades extras. Por exemplo, uma dependência pode ser outro arquivo ou arquivo em Projetos Java. Outras partes do projeto fazem referência à dependência a ser executada.

Ter uma imagem clara da árvore de dependências do seu projeto pode ser benéfico. Permite encontrar rapidamente conflitos entre pacotes instalados e resolvê-los de forma eficiente.







Neste tutorial, aprenderemos como visualizar a árvore de dependências de um projeto Maven.”



Vamos começar.



Plugin de dependência do Maven

O utilitário Apache Maven vem com uma ferramenta que permite gerenciar suas dependências. O Maven Dependency Plugin permitirá que você execute um comando simples em seu projeto e visualize todas as suas dependências.





O recurso do plugin é mostrado abaixo:

https://maven.apache.org/plugins/maven-dependency-plugin/usage.html



A melhor maneira de visualizar a árvore de dependências do seu projeto com este plugin é executando o seguinte comando:

dependência mvn : árvore

O comando anterior localizará todas as dependências em seu projeto e retornará uma estrutura em forma de árvore.

Vamos ilustrar como podemos fazer isso.

Você pode usar qualquer projeto Maven com quaisquer dependências necessárias para fazer isso.

Depois de executar o comando acima, você deverá ver a seguinte saída de exemplo:

[ INFORMAÇÕES ] --- especialista - dependência - plugar : 2,8 : árvore ( predefinição - cli ) @jedis ---
[ INFORMAÇÕES ] redis. clientes : jedi : jarra : 4.3.0 - INSTANTÂNEO
[ INFORMAÇÕES ] +- org. slf4j : slf4j - api : jarra : 1.7.32 : compilar
[ INFORMAÇÕES ] +- org. apache . comuns : comuns - pool2 : jarra : 2.11.1 : compilar
[ INFORMAÇÕES ] +- org. json : json : jarra : 20211205 : compilar
[ INFORMAÇÕES ] +- com. o Google . código . gson : gson : jarra : 2.8.9 : compilar
[ INFORMAÇÕES ] +- junho : junho : jarra : 4.13.2 : teste
[ INFORMAÇÕES ] | \ - org. hamcrest : hamcrest - essencial : jarra : 1.3 : teste
[ INFORMAÇÕES ] +- org. slf4j : slf4j - simples : jarra : 1.7.32 : teste
[ INFORMAÇÕES ] +- com. kohlschutter . soquete junix : soquete junix - essencial : Vejo : 2.4.0 : teste
[ INFORMAÇÕES ] | +- com. kohlschutter . soquete junix : soquete junix - nativo - comum : jarra : 2.4.0 : teste
[ INFORMAÇÕES ] | \ - com. kohlschutter . soquete junix : soquete junix - comum : jarra : 2.4.0 : teste
[ INFORMAÇÕES ] \ - org. mockito : mockito - em linha : jarra : 3.12.4 : teste
[ INFORMAÇÕES ] \ - org. mockito : mockito - essencial : jarra : 3.12.4 : teste
[ INFORMAÇÕES ] +- líquido. bytebuddy : byte - camarada : jarra : 1.11.13 : teste
[ INFORMAÇÕES ] +- líquido. bytebuddy : byte - camarada - agente : jarra : 1.11.13 : teste
[ INFORMAÇÕES ] \ - org. concordou : concordou : jarra : 3.2 : teste

Como você pode ver na saída acima, o Maven retorna todas as dependências do nosso projeto em formato de lista.

É bom ter em mente que este comando requer que você tenha o Maven e o Java JDK instalados em seu sistema.

Filtrando Dependências

Se você estiver trabalhando em um projeto grande, pode ser difícil visualizar e gerenciar todas as dependências usando o comando acima.

Felizmente, o plug-in da árvore de dependências do Maven permite filtrar as dependências mostradas. Isso significa que você pode incluir ou excluir qualquer dependência que desejar.

Para incluir apenas uma dependência específica, usamos a opção Dincludes conforme mostrado na sintaxe a seguir:

dependência mvn : árvore - Inclui [ groupId ] : [ ID do artefato ] : [ modelo ] : [ versão ]

Tenha em mente que cada um dos segmentos no parâmetro -Dincludes é opcional.

Por exemplo, para mostrar como uma dependência específica é usada no projeto, podemos executar o seguinte comando:

dependência mvn : árvore - Inclui = soquete junix : soquete junix - essencial

O código anterior deve retornar:

[ INFORMAÇÕES ]
[ INFORMAÇÕES ] ------------------------< redis. clientes : jedi >-------------------------
[ INFORMAÇÕES ] Construindo Jedis 4.3.0 - INSTANTÂNEO
[ INFORMAÇÕES ] -------------------------------- [ jarra ] ----------------------------------
[ INFORMAÇÕES ]
[ INFORMAÇÕES ] --- especialista - dependência - plugar : 2,8 : árvore ( predefinição - cli ) @jedis ---

Para excluir uma dependência da árvore, podemos usar o parâmetro -Dincludes conforme mostrado na sintaxe abaixo.:

dependência mvn : árvore - Inclui = [ groupId ] : [ ID do artefato ] : [ modelo ] : [ versão ]

Por exemplo:

dependência mvn : árvore - Exclui = soquete junix : soquete junix - essencial

Isso deve retornar a saída conforme mostrado abaixo:

Maven Salvar Dependência em Arquivo

Você também pode salvar a árvore de dependências em um arquivo usando o parâmetro -DoutputFile. Um exemplo é mostrado abaixo:

dependência mvn : árvore - Arquivo de saída = 'dep.árvore'

No comando anterior, instruímos o Maven a criar uma árvore de dependências e salvá-la em um arquivo chamado dep.tree.

A saída do arquivo resultante é fornecida abaixo:

+- org. slf4j : slf4j - api : jarra : 1.7.32 : compilar
+- org. apache . comuns : comuns - pool2 : jarra : 2.11.1 : compilar
+- org. json : json : jarra : 20211205 : compilar
+- com. o Google . código . gson : gson : jarra : 2.8.9 : compilar
+- junho : junho : jarra : 4.13.2 : teste
| \ - org. hamcrest : hamcrest - essencial : jarra : 1.3 : teste
+- org. slf4j : slf4j - simples : jarra : 1.7.32 : teste
+- com. kohlschutter . soquete junix : soquete junix - essencial : Vejo : 2.4.0 : teste
| +- com. kohlschutter . soquete junix : soquete junix - nativo - comum : jarra : 2.4.0 : teste
| \ - com. kohlschutter . soquete junix : soquete junix - comum : jarra : 2.4.0 : teste
\ - org. mockito : mockito - em linha : jarra : 3.12.4 : teste
\ - org. mockito : mockito - essencial : jarra : 3.12.4 : teste
+- líquido. bytebuddy : byte - camarada : jarra : 1.11.13 : teste
+- líquido. bytebuddy : byte - camarada - agente : jarra : 1.11.13 : teste
\ - org. concordou : concordou : jarra : 3.2 : teste

O Maven incluirá apenas as dependências do projeto no arquivo de maneira hierárquica.

Conclusão

Este post abordou como visualizar a árvore de dependências do Maven usando o plug-in de dependências do Maven.