У меня проблема с автоматической добавлением зависимостей для проекта eclipse android через gradle. У меня есть лишь немного опыта работы с gradle. До сих пор я создал два проекта java с gradle. Одна банка и исполняемая банка. Это работает без проблем. Я использовал плагин eclipse для создания проекта eclipse и добавления зависимостей к пути сборки. Я добавил новые зависимости к gradle script, запустил gradle с gradle eclipse, обновил мой проект и зависимости существуют в пути сборки, и я могу их использовать. Вот важная часть этого script.
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
mavenCentral()
}
dependencies {
compile 'commons-io:commons-io:2.4'
}
Итак, теперь я попробовал его в сочетании с плагином Android. Вот моя дыра gradle script.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
apply plugin: 'eclipse'
repositories {
mavenCentral()
}
dependencies {
compile 'org.apache.commons:commons-lang3:3.1'
}
android {
compileSdkVersion 17
buildToolsVersion "17"
defaultConfig {
minSdkVersion 14
targetSdkVersion 17
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
}
Если я использую gradle eclipse, ничего не происходит. Затем я узнал, что плагин java добавляет зависимости к пути сборки. Поэтому я добавил
apply plugin: 'java'
и получил ошибку, что java-плагин несовместим с плагином Android. Затем я нашел решение для автоматического копирования баннеров в папку lib проекта.
def libDir = file('libs')
task copyLibs(type: Copy) {
doFirst {
libDir.mkdirs()
}
from configurations.runtime
into libDir
}
Но для этой задачи также нужен плагин java для конфигураций .runtime. Мне нужен плагин android для создания файла apk, поэтому он не является решением для удаления плагина android. Есть ли у кого-нибудь идея, можно ли добавить зависимости к пути сборки или папке lib в проекте ecipse, совместимом с плагином Android?
EDIT: Одна из моих идей заключалась в том, чтобы поместить java-плагин в eclipse-plugin, так что он будет применяться только при использовании плагина eclipse. Что-то вроде этого:
apply plugin: 'eclipse'
eclipse{
apply plugin: 'java'
}
Но я все еще получаю сообщение о том, что плагины java и android не совместимы. Возможно, я понимаю, что gradle неправильно, но обычно плагин java должен применяться только тогда, когда я запускаю плагин eclipse, а не плагин Android. Я боюсь, что мое понимание и опыт gradle недостаточно хороши, чтобы решить это так или понять, почему это невозможно.