4. XML-сценарий build.xml*
Императивная настройка
Цели target
Могут зависеть друг от друга
Задачи task
ant, antcall,
mkdir, copy, delete, move, exec, get,
jar, java, javac, javadoc,
property, tstamp, style, cvs, echo
Не умеет управлять зависимостями** :(
* Может называться как угодно, по умолчанию ant будет искать build.xml
** Для зависимостей нужно использовать вместе с Apache Ivy
9. Maven: минимальная конфигурация
версия конфигурационного файла
координаты проекта:
artifactId: имя проекта
groupId: автор проекта
version: версия проекта
"groupId:artifcatId:version"
Любую зависимость можно указать через эту тройку
Супер Pom обеспечивает конфигурацию модулей по умолчанию
12. Это DSL - Domain Speci c Language (ура, не XML)
Основан на Groovy
Статическая и динамическая типизация
Замыкания
Перегрузка операций
Улучшенный синтаксис Java
19. Build Script
allprojects {}
настройки для всех проектов (подхватываются каждым модулем)
buildscript {}
настройка build-скрипта Gradle
repositories {}
откуда нужно качать зависимости
чтобы не указывать в каждом модуле - выносим в корень
dependencies {}
какие зависимости нужны
24. ./application/build.gradle
apply - применяет к проекту плагин. Плагин добавляет задачи
android - содержит настройки для плагина com.android.application
compileSdkVersion
buildToolsVersion - утилита для сброки apk
defaultCon g - параметры Android-проекта
dependencies - список зависимостей модуля
26. Зависимости gradle
1 dependencies {
2 //от другого модуля
3 compile project(':mylibrary')
4 //от библиотеки из репозитория
5 compile 'com.android.support:appcompat-v7:23.4.0'
6 //от локальных библиотек
7 compile fileTree(dir: 'libs', include: ['*.jar'])
8 }
* Gradle зависимости можно подключать так же как в maven:
compile 'groupId : artifactId : version'
28. Build Type
различные способы сборки/компиляции проекта
ключ для подписи
минимизация и запутывание (обфускация)
возможность отладки
суффикс для пакета приложения
29. Product Flavor
различные исходники для включения в apk
разные варианты одного класса
разные варианты ресурсов
можно изменять пакет приложения
...и версию