Árvore de dependência de MVN

Árvore de dependência de MVN

“As dependências são códigos e trechos externos importados para o seu projeto para fornecer funcionalidade extra. Por exemplo, uma dependência pode ser outro arquivo ou arquivo em projetos java. Outras partes do projeto então referenciam a dependência para executar.

Ter uma imagem clara da árvore de dependência para o seu projeto pode ser benéfica. Permite encontrar rapidamente conflitos entre os pacotes instalados e resolvê -los com eficiência.

Neste tutorial, aprenderemos a ver a árvore de dependência 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 plug -in de dependência do Maven permitirá que você execute um comando simples em seu projeto e visualize todas as suas dependências.

O recurso do plug -in é mostrado abaixo:

https: // maven.apache.org/plugins/maven-dependência-plugin/uso.html

A melhor maneira de visualizar a árvore de dependência do seu projeto com este plug -in é executando o seguinte comando:

Dependência de MVN: árvore

O comando anterior localizará todas as dependências em seu projeto e devolverá uma estrutura semelhante a uma árvore.

Vamos ilustrar como podemos conseguir isso.

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

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

[Info] --- MAVEN-DEPENDÊNCIA PLUGIN: 2.8: Árvore (padrão-cli) @ jedis ---
[Info] redis.Clientes: Jedis: Jar: 4.3.0-SNAPSHOT
[Info] +- org.SLF4J: SLF4J-API: JAR: 1.7.32: Compilar
[Info] +- org.apache.Commons: Commons-Pool2: JAR: 2.11.1: Compilar
[Info] +- org.JSON: JSON: JAR: 20211205: Compilar
[Info] +- com.Google.código.GSON: GSON: JAR: 2.8.9: Compilar
[Info] +- Junit: Junit: Jar: 4.13.2: teste
[Info] | \- org.Hamcrest: Hamcrest-Core: Jar: 1.3: teste
[Info] +- org.SLF4J: SLF4J-SIMPLE: JAR: 1.7.32: teste
[Info] +- com.Kohlschutter.JunixSocket: JunixSocket-Core: POM: 2.4.0: teste
[Info] | +- com.Kohlschutter.JunixSocket: JunixSocket-Native-Common: Jar: 2.4.0: teste
[Info] | \- com.Kohlschutter.JunixSocket: JunixSocket-Common: JAR: 2.4.0: teste
[Info] \- org.Mockito: Mockito-Inline: Jar: 3.12.4: teste
[Info] \- org.Mockito: Mockito-Core: Jar: 3.12.4: teste
[Info] +- rede.BYTEBUDDY: BYTE-BUDDY: JAR: 1.11.13: teste
[Info] +- rede.BYTEBUDDY: BYTE-BUDDY-AGENT: JAR: 1.11.13: teste
[Info] \- org.Objena: Objenesis: Jar: 3.2: teste

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

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

Filtragem dependências

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

Felizmente, o plugin de árvore de dependência 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, como mostrado na sintaxe a seguir:

Dependência da MVN: Árvore -Dincludes [GroupID]: [ArtifactId]: [Type]: [versão]

Lembre -se de 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:

MVN Dependência: Árvore -Dincludes = JunixSocket: JunixSocket -Core

O código anterior deve retornar:

[Info]
[Info] ------------------------< redis.clients:jedis >-------------------------
[Info] Construindo Jedis 4.3.0-SNAPSHOT
[Info] -------------------------------- [JAR]---------------------------------
[Info]
[Info] --- MAVEN-DEPENDÊNCIA PLUGIN: 2.8: Árvore (padrão-cli) @ jedis ---

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

MVN Dependência: Tree -Dincludes = [GroupID]: [ArtifactId]: [Type]: [versão]

Por exemplo:

MVN Dependência: Tree -DexCludes = JunixSocket: JunixSocket -Core

Isso deve retornar a saída como mostrado abaixo:

MAVEN SALVAR DEPENDÊNCIA PARA O FILE

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

Dependência de MVN: árvore -doutputFile = "Dep.árvore"

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

A saída de arquivo resultante é fornecida abaixo:

+- org.SLF4J: SLF4J-API: JAR: 1.7.32: Compilar
+- org.apache.Commons: Commons-Pool2: JAR: 2.11.1: Compilar
+- org.JSON: JSON: JAR: 20211205: Compilar
+- com.Google.código.GSON: GSON: JAR: 2.8.9: Compilar
+- Junit: Junit: Jar: 4.13.2: teste
| \- org.Hamcrest: Hamcrest-Core: Jar: 1.3: teste
+- org.SLF4J: SLF4J-SIMPLE: JAR: 1.7.32: teste
+- com.Kohlschutter.JunixSocket: JunixSocket-Core: POM: 2.4.0: teste
| +- com.Kohlschutter.JunixSocket: JunixSocket-Native-Common: Jar: 2.4.0: teste
| \- com.Kohlschutter.JunixSocket: JunixSocket-Common: JAR: 2.4.0: teste
\- org.Mockito: Mockito-Inline: Jar: 3.12.4: teste
\- org.Mockito: Mockito-Core: Jar: 3.12.4: teste
+- líquido.BYTEBUDDY: BYTE-BUDDY: JAR: 1.11.13: teste
+- líquido.BYTEBUDDY: BYTE-BUDDY-AGENT: JAR: 1.11.13: teste
\- org.Objena: Objenesis: Jar: 3.2: teste

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

Conclusão

Esta posta.