"Gradle is an open source build automation system that builds upon the concepts of Apache Ant and Apache Maven and introduces a Groovy-based domain-specific language (DSL) instead of the XML form used byApache Maven of declaring the project configuration. Gradle uses a directed acyclic graph ("DAG") to determine the order in which tasks can be run." - https://en.wikipedia.org/wiki/Gradle
Em resumo, Gradle é o atual sistema de build das suas aplicações na IDE Android Studio (http://developer.android.com/sdk/index.html), misturando conceitos de build automático e "sync automatizado" de pacotes/libs de dependências do seu projeto.
Bom, que melhor forma de iniciar os estudos do que em um curso de Gradle?
http://gradle.org/gradle-for-android-training/
Fui tentar me inscrever, mas percebi que não existiam turmas disponíveis para Janeiro... Não... não foi o preço exorbitante que eu gastaria em 4 horas de curso, mesmo existindo livros grátis/"grátis"/pagos:
http://gradle.org/books/
http://www.allitebooks.com/gradle-for-android/
https://www.packtpub.com/application-development/gradle-android
Mas começarei pelo... começo... literalmente:
http://gradle.org/getting-started-android/#developer
Bom, basicamente, existem 2 tipos de build files:
- Top-Level Build File: Aqui ficam as opções de configuração que são comuns a todos os módulos que fazem parte do seu projeto.
- Module-Level Build File: Cada módulo possui seu própro arquivo de build, o qual contém ajustes específicos para o mesmo.

TOP-LEVEL GRADLE BUILD FILE
Todo projeto do Android Studio contém um único arquivo top-level, este arquivo build.gradle é o primeiro arquivo listado na pasta Gradle Scripts e está marcado como Project.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| buildscript { //Project-level Gradle build files utiliza buildscript para definir as dependências dependencies.// repositories { jcenter() } //Este arquivo depende do repositório do jJCenter.// dependencies { classpath 'com.android.tools.build:gradle:1.0.0' //Project é dependente da versão 1.0.0 do plugin Android para o Gradle.// } } allprojects { //Define as dependências necessárias para sua aplicação.// repositories { jcenter() } } //Application depende do repositório do jCenter.// |
MODULE-LEVEL GRADLE BUILD FILES
Além do project-level Gradle build file, cada módulo possui um Gradle build file próprio.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| apply plugin: 'com.android.application' //Como este projeto é uma aplicação Android, o arquivo build.gradle usa o Android plugin.// android { //A secção abaixo ajusta todos os parâmetros específicos de um projeto Android e informa ao Gradle qual versão do Android deveria ser utilizada para a build do projeto.// compileSdkVersion 21 //A API que seu projeto tem como alvo.// buildToolsVersion "21.1.1" ////A versão da ferramenta de build a ser utilizada.// defaultConfig { applicationId "com.example.jessica.myapplication" //Define o ID da sua aplicação. Veja que, versões anteriores do plugin de Android utiliza ‘packageName’ ao invés de ‘applicationID.’// minSdkVersion 16 //A versão mínima da API do projeto.// targetSdkVersion 21 //A versão do Android que sua aplicação está focando o desenvolvimento.// versionCode 1 versionName "1.0" } buildTypes { release { //‘BuildTypes’ controla como seu app é gerado e empacotado. Se você deseja criar seu próprio variante de geração, é necessário adicioná-lo nesta secção.// minifyEnabled true //Gradle roda ProGuard durante o processo de geração.// proguardFiles getDefaultProguardFile( 'proguard-android.txt' ), 'proguard-rules.pro' //Aplica as configurações padrão do ProGuard do Android SDK.// } } } dependencies { //Declara as dependencias para o módulo corrente.// compile fileTree(dir: 'libs' , include: [ '*.jar' ]) //Apesar de ser possível adicionar arquivos JAR compilados individualmente, isto pode ser custoso em relação ao tempo, caso haja muitos JARs. Neste exemplo, estamos dizendo ao Gradle para adicionar todos os arquivos JAR na pasta app/libs.// compile 'com.android.support:appcompat-v7:21.0.3' //Para criar mais dependências, adicione-as no closure de dependencies.// } |
OUTROS GRADLE FILES
Além dos arquivos build.gradle, a pasta Gradle Scripts contém alguns outros arquivos Gradle. Na maior parte do tempo, não é necessário modificá-los manualmente pois eles são atualizados automaticamente quando algumas modificações relevantes são feitas ao projeto.
gradle-wrapper.properties (Gradle Version)
Este arquivo permite que outras pessoas compilem seu código, mesmo se eles não possuem Gradle instalado em suas máquinas. Este arquivo checka se a versão correta do Gradle está instalado e faz o download a versão necessário, caso haja necessidade.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
| distributionBase=GRADLE_USER_HOME //Determina se uma distribuição não empacotada de um wrapper deveria ser armazenada neste projeto, ou no diretório home do usuário.// distributionPath=wrapper/dists //O caminho aonde as distribuições Gradle requeridas pelo wrapper estão unzipped.// zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\: //services.gradle.org/distributions/gradle-2.2.1-all.zip //A URL de onde a versão correta do Gradle deveria ser puxada.// |
settings.gradle
1
| include ':app' |
gradle.properties (Project Properties)
Este arquivo contém informações de ajustes para o projeto inteiro. Por padrão ele é vazio, mas é possível aplicar uma grande variedade de propriedades para seu projeto quando adicionando-as neste arquivo.
local.properties (SDK Location)
Este arquivo informa ao plugin do Android Gradle onde é possível encontrar a instalação do Android SDK.
1
| sdk.dir=/Users/jessica/Library/Android/sdk |
Perceba que local.properties contém informações específicas para o local de instalação do Android SDK. Isto significa que este arquivo não deve ser versionado.
Nenhum comentário:
Postar um comentário