Repositórios de Gradle

Repositórios de Gradle
Gradle procura dependências externas nos repositórios. Um repositório gradle é organizado usando grupo, nome e versão. Gradle é compatível com diferentes formatos de repositório, como Maven e Ivy.

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á Mundo
|- Construir.Gradle
'- Src
|- Main
'- Java
'-- Olá Mundo
'-- Olá Mundo.Java

No Helloworld.Java, você pode colocar o seguinte código:

importação org.apache.Comuns.Lang3.Stringutils;
classe pública helloworld
public static void main (string [] args)
Saudações de String = "Hello World!";
Sistema.fora.println (saudações);
Sistema.fora.println (stringutils.troca (saudações));

E na construção.arquivo gradle Você pode colocar o seguinte:

Aplicar o plug -in: 'Java'
versão = '1.0 '
Repositórios
mavencentral ()

dependências
Grupo de compilação: 'org.apache.Commons ', Nome:' Commons-Lang3 ', versão:' 3.7 '

jar
de configurações.compilar.Colete ziptree it

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.

Conclusão

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.

Um estudo mais aprofundado:

Gestão de dependência gradle para projetos Java