Gradle - Gerenciamento de Dependências

O script de construção do Gradle define um processo para construir projetos; cada projeto contém algumas dependências e algumas publicações. Dependências significam as coisas que suportam construir seu projeto, como o arquivo JAR necessário de outros projetos e JARs externos como JDBC JAR ou Eh-cache JAR no caminho da classe. Publicações significam os resultados do projeto, como arquivos de classe de teste e arquivos de construção, como arquivos war.

Quase todos os projetos não são independentes. Eles precisam de arquivos criados por outros projetos para compilar e testar os arquivos de origem. Por exemplo, para usar o Hibernate no projeto, você precisa incluir alguns JARs do Hibernate no classpath. O Gradle usa algum script especial para definir as dependências, que precisam ser baixadas.

O Gradle se encarrega de criar e publicar os resultados em algum lugar. A publicação é baseada na tarefa que você define. Ele pode querer copiar os arquivos para o diretório local ou carregá-los em um repositório Maven ou lvy remoto ou você pode usar os arquivos de outro projeto na mesma compilação de multiprojeto. Podemos chamar o processo de publicação de uma tarefa de publicação.

Declarando suas dependências

A configuração de dependências nada mais é que define um conjunto de dependências. Você pode usar este recurso para declarar as dependências externas que deseja baixar da web. Isso define diferentes padrões, como a seguir.

apply plugin: 'java'

repositories {
   mavenCentral()
}

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
   testCompile group: 'junit', name: 'junit', version: '4.+'
}

Configurações de Dependência

A configuração de dependências nada mais é do que define um conjunto de dependências. Você pode usar este recurso para declarar dependências externas, que deseja baixar da web. Isso define as seguintes configurações padrão diferentes.

  • Compile - As dependências necessárias para compilar a fonte de produção do projeto.

  • Runtime- As dependências exigidas pelas classes de produção em tempo de execução. Por padrão, também inclui as dependências de tempo de compilação.

  • Test Compile- As dependências necessárias para compilar a fonte de teste do projeto. Por padrão, inclui classes de produção compiladas e dependências de tempo de compilação.

  • Test Runtime- As dependências necessárias para executar os testes. Por padrão, inclui tempo de execução e dependências de compilação de teste.

Dependências Externas

Dependências externas são aquelas do tipo de dependências. Esta é uma dependência de alguns arquivos construídos externamente na construção atual e armazenados em um repositório de algum tipo, como Maven central, ou um Maven corporativo ou repositório lvy, ou um diretório no sistema de arquivos local.

O seguinte fragmento de código é para definir a dependência externa. Use este código embuild.gradle Arquivo.

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}

Uma dependência externa está declarando dependências externas e o formulário de atalho se parece com "grupo: nome: versão".

Repositórios

Ao adicionar dependências externas. O Gradle procura por eles em um repositório. Um repositório é apenas uma coleção de arquivos, organizados por grupo, nome e versão. Por padrão, o Gradle não define nenhum repositório. Temos que definir pelo menos um repositório explicitamente. O fragmento de código a seguir define como definir o repositório maven. Use este código embuild.gradle Arquivo.

repositories {
   mavenCentral()
}

O código a seguir é para definir maven remoto. Use este código embuild.gradle Arquivo.

repositories {
   maven {
      url "http://repo.mycompany.com/maven2"
   }
}

Publicação de artefatos

As configurações de dependência também são usadas para publicar arquivos. Esses arquivos publicados são chamados de artefatos. Normalmente, usamos plug-ins para definir artefatos. No entanto, você precisa informar ao Gradle onde publicar os artefatos. Você pode fazer isso anexando repositórios à tarefa de upload de arquivos. Dê uma olhada na seguinte sintaxe para publicar o repositório Maven. Durante a execução, o Gradle gerará e fará upload de um Pom.xml de acordo com os requisitos do projeto. Use este código embuild.gradle Arquivo.

apply plugin: 'maven'

uploadArchives {
   repositories {
      mavenDeployer {
         repository(url: "file://localhost/tmp/myRepo/")
      }
   }
}