Добавить зависимости через Gradle для затмения в Android-проекте

У меня проблема с добавлением зависимостей автоматически для затмения проекта 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 для настройки. Мне нужен плагин Android для создания файла apk, так что это не решение, чтобы удалить плагин Android. У кого-нибудь есть идея, возможно ли добавить зависимости в путь сборки или папку lib в проекте ecipse, совместимом с плагином android?

РЕДАКТИРОВАТЬ: Одна из моих идей состояла в том, чтобы добавить плагин java к плагину eclipse, чтобы он применялся только тогда, когда будет применен плагин eclipse. Что-то вроде этого:

apply plugin: 'eclipse'

eclipse{
    apply plugin: 'java'
}

Но я все еще получаю ошибку, что плагины Java и Android не совместимы. Может быть, я неправильно понимаю Gradle, но обычно плагин Java следует применять только тогда, когда я запускаю плагин Eclipse, а не плагин Android. Я боюсь, что мое понимание и опыт gradle недостаточно хороши, чтобы решить эту проблему или понять, почему это невозможно.

Ответы на вопрос(5)

Ваш ответ на вопрос