Недавно я решил переключить свой проект Android на систему сборки Gradle от ant. Ручное управление зависимостями библиотек и модулей между членами нашей команды быстро становилось слишком трудоемким.
Все началось гладко. Я создал новый проект gradle, переместил свои источники и ресурсы и избавился от всех основных сторонних библиотек .jars, которые мы висим в моей папке /libs, чтобы я мог использовать новые центральные зависимости gradle maven. Там нет проблем.
Теперь я пытаюсь найти хороший способ установить зависимости от некоторых менее популярных модулей, которых нет в центре maven. Я использую несколько небольших модулей Android (например, средство проверки формы, вспомогательный модуль и т. д.), от которых я стал зависеть. Проблема в том, что эти модули не просто .jars, но и ресурсы. Насколько я могу судить, я не могу просто поместить эти модули в свою папку /libs и заставить Gradle установить для них зависимости. Я немного почитал о файлах .aar и ищу совета о том, являются ли они ответами на мои проблемы или я упускаю из виду что-то простое. Ниже представлена моя текущая структура каталогов (с некоторыми комментариями) и файл gradle.build.
структура каталогов
/<project-directory>
/build
/gradle
/<application-directory>
/build
/src
/libs <-- where I would expect to put non-maven modules
/Form-Validator <-- MyApplication depends on this module
/build.gradle
/src
/java
/res
... etc etc etc
/Other-Module
/build.gradle (seen below)
build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.14.2'
}
}
apply plugin: 'com.android.application'
repositories {
jcenter()
mavenCentral()
flatDir {
dirs 'libs'
}
}
android {
compileSdkVersion 21
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "com.#####.############"
minSdkVersion 16
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:cardview-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.3'
compile 'com.google.code.gson:gson:2.3.1'
compile 'com.squareup.retrofit:retrofit:1.8.0'
compile 'com.squareup.okio:okio:1.1.0'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
compile 'com.github.bumptech.glide:glide:3.4.0'
}