Noções básicas sobre gerenciamento de dependências no Gradle
Repositórios são usados no Gradle para gerenciamento de dependências. Existem dois componentes nas dependências do Gradle: dependências e publicações do projeto.
Ao construir um projeto no Gradle, você provavelmente precisará de bibliotecas de outros desenvolvedores. Suponha que você precise da biblioteca Apache Commons Lang para manipulações especiais de strings. Então você precisa disso em seu classpath para que seu código funcione. E o Apache Commons Lang pode precisar de bibliotecas adicionais que você não conhece. O Gradle permite que você informe a dependência específica de que seu projeto precisa e ele irá para o repositório especificado como Maven ou Ivy e descobrirá todas as dependências relacionadas e fará o download dos arquivos e configurá-los para você automaticamente.
O Gradle também pode publicar seus artefatos. Você pode decidir o que a publicação significa para o seu caso particular. 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 biblioteca Apache Commons Lang. Vamos configurar um diretor assim:
Olá Mundo| - construir.gradle
'- src
| - principal
'- java
'-- Olá Mundo
'-- Olá Mundo.Java
No mundo helicoidal.java, você pode colocar o seguinte código:
import org.apache.bens comuns.lang3.StringUtils;public class helloworld
public static void main (String [] args)
String greetings = "Olá, mundo!";
Sistema.Fora.println (saudações);
Sistema.Fora.println (StringUtils.swapCase (saudações));
E na construção.arquivo gradle, você pode colocar o seguinte:
aplicar plugin: 'java'versão = '1.0 '
repositórios
mavenCentral ()
dependencies
grupo de compilação: 'org.apache.commons ', nome:' commons-lang3 ', versão:' 3.7 '
jar
das configurações.compilar.colete zipTree it
Vamos discutir o que está acontecendo no script de construção acima. Está dizendo ao Gradle para procurar no repositório Maven pelo commons-lang3 versão 3.7. Também informa ao Gradle para empacotar as dependências no arquivo jar. Se você remover o das configurações.compilar.collect zipTree it linha, então você terá que incluir as dependências externas no classpath ao executar o programa.
Agora, a partir da pasta raiz, você pode executar a compilação com o comando
jar de $ gradleVocê deve ver resultados como este:
jar de $ gradle
Baixe https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.pom
Baixe https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-parent / 42 /
commons-parent-42.pom
Baixe https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.jarra
CONSTRUIR COM SUCESSO em 6s
2 tarefas acionáveis: 1 executada, 1 atualizada
Você pode executar a construção assim:
$ java -cp build / libs / helloworld-1.0.jar helloworldOlá Mundo!
Olá Mundo!
Se você não tivesse incluído as dependências em sua construção, as classes StringUtils não teriam sido incluídas em seu helloworld-1.0.arquivo jar. E você teria obtido um erro como este:
$ java -cp build / libs / helloworld-1.0.jar helloworldOlá Mundo!
Exceção no thread "principal" java.lang.NoClassDefFoundError: org / apache / commons / lang3 /
StringUtils em helloworld.principal (helloworld.java: 11)
Causado por: java.lang.ClassNotFoundException: org.apache.bens comuns.lang3.StringUtils
em java.internet.URLClassLoader.findClass (URLClassLoader.java: 381)
em java.lang.ClassLoader.loadClass (ClassLoader.java: 424)
ao sol.misc.Launcher $ AppClassLoader.loadClass (Launcher.java: 331)
em java.lang.ClassLoader.loadClass (ClassLoader.java: 357)
… mais 1
O Gradle torna mais fácil empacotar suas dependências em seu pacote.
Conclusão
Usar repositórios Gradle e funcionalidades de dependências pode simplificar seu processo de gerenciamento de dependências. Você não precisa controlar tudo manualmente.
Um estudo mais aprofundado:
Gerenciamento de dependência do Gradle para projetos Java