Entendendo o gerenciamento de dependência em Gradle
Os repositórios são usados no Gradle para gerenciamento de dependência. Existem dois componentes para graduar dependências: dependências e publicações do projeto.
Quando você constrói um projeto no Gradle, você provavelmente precisará de bibliotecas de outros desenvolvedores. Suponha que você precise da Biblioteca Lang do Apache Commons para manipulações especiais de cordas. Então você precisa disso em seu caminho de classe para que seu código funcione. E o Apache Commons Lang pode precisar de bibliotecas adicionais que você não conhece. GRADLE permite que você diga a dependência específica que seu projeto precisa e ele irá para o repositório especificado como maven ou hera e descobrir todas as dependências relacionadas e baixar os arquivos e configurá -lo para você automaticamente.
Gradle também tem a capacidade de publicar seus artefatos. Você pode decidir o que publicação significa para o seu caso específico. Você pode publicá -lo localmente ou publicá -lo em um repositório Maven ou Ivy.
Exemplo de repositório gradle
Suponha que queremos usar a classe Stringutils da Apache Commons Lang Library. Vamos criar um diretor como este:
Olá MundoNo Helloworld.Java, você pode colocar o seguinte código:
importação org.apache.Comuns.Lang3.Stringutils;E na construção.arquivo gradle Você pode colocar o seguinte:
Aplicar o plug -in: 'Java'Vamos discutir o que está acontecendo no script de construção acima. Está dizendo a Gradle para procurar no repositório Maven para a versão 3 do Commons-Lang3.7. Também está dizendo a Gradle para empacotar as dependências no arquivo JAR. Se você remover as configurações das configurações.compilar.Colete a linha ziptree it, então você terá que incluir as dependências externas no caminho de classe quando executar o programa.
Agora da pasta raiz, você pode executar a construção com o comando
$ gradle jar
Você deve ver resultados como este:
$ gradle jar
Baixar https: // repo.Maven.apache.org/maven2/org/apache/Commons/Commons-Lang3/3.7/
Commons-Lang3-3.7.pom
Baixar https: // repo.Maven.apache.org/maven2/org/apache/commons/commons-parent/42/
Commons-Parent-42.pom
Baixar https: // repo.Maven.apache.org/maven2/org/apache/Commons/Commons-Lang3/3.7/
Commons-Lang3-3.7.jarra
Construir sucesso em 6s
2 Tarefas acionáveis: 1 executado, 1 atualizado
Você pode executar a construção assim:
$ java -CP Build/Libs/Helloworld -1.0.jar helloworld
Olá Mundo!
Olá Mundo!
Se você não tivesse incluído as dependências em sua construção, as aulas de Stringutils não teriam sido incluídas no seu helloworld-1.0.arquivo jar. E você teria recebido um erro como este:
$ java -CP Build/Libs/Helloworld -1.0.jar helloworld
Olá Mundo!
Exceção no tópico "principal" java.Lang.NoclassDeffoundError: org/apache/commons/lang3/
Stringutils no Helloworld.Principal (Helloworld.Java: 11)
Causado por: java.Lang.ClassnotfoundException: org.apache.Comuns.Lang3.Stringutils
em Java.líquido.URLClassLoader.FindClass (URLClassLoader.Java: 381)
em Java.Lang.Classloader.LOADCLASS (CLASTLOADER.Java: 424)
ao sol.misc.Launcher $ appClassLoader.LOADCLASS (lançador.Java: 331)
em Java.Lang.Classloader.LOADCLASS (CLASTLOADER.Java: 357)
… mais 1
Gradle facilita para você empacotar suas dependências em seu pacote.
O uso de repositórios e dependências gradle pode simplificar seu processo de gerenciamento de dependência. Você não precisa acompanhar manualmente tudo.
Gestão de dependência gradle para projetos Java