у меня проблема с автоматическим добавлением зависимостей в проект eclipse android через gradle. У меня есть только небольшой опыт работы с gradle. До сих пор я построил два java-проекта с gradle. Одна банка и исполняемая банка. Это работает без проблем. Я использовал плагин eclipse для создания проекта eclipse и добавления зависимостей в путь сборки. Я добавил новые зависимости в скрипт gradle, запустил gradle с gradle eclipse, обновил свой проект, и зависимости существуют в пути сборки, и я могу их использовать. Вот важная часть этого сценария.
apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
mavenCentral()
}
dependencies {
compile 'commons-io:commons-io:2.4'
}
Итак, теперь я попробовал его в сочетании с плагином для Android. Вот мой сценарий градиента отверстия.
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-плагин для configurations.runtime. Мне нужен плагин Android для создания файла apk, поэтому удаление плагина Android не является решением. Есть ли у кого-нибудь идея, можно ли добавить зависимости к пути сборки или папке lib в проекте Ecipse, совместимом с плагином Android?
РЕДАКТИРОВАТЬ: Одна из моих идей заключалась в том, чтобы поместить java-плагин в eclipse-плагин, чтобы он применялся только тогда, когда будет применяться плагин eclipse. Что-то вроде этого:
apply plugin: 'eclipse'
eclipse{
apply plugin: 'java'
}
Но я все еще получаю сообщение об ошибке, что плагины для Java и Android несовместимы. Возможно, я неправильно понимаю Gradle, но обычно плагин Java следует применять только тогда, когда я запускаю плагин eclipse, а не плагин Android. Я боюсь, что моего понимания и опыта работы с градиентом недостаточно, чтобы решить это таким образом или понять, почему это невозможно.