Dodaj zależności za pomocą stopniowania do zaćmienia w projekcie Android

Mam problem z automatycznym dodawaniem zależności do zaćmienia projektu android za pomocą gradle. Mam tylko trochę doświadczenia z gradle. Do tej pory zbudowałem dwa projekty Java z gradle. Jeden słoik i wykonywalny słoik. Działa to bez problemów. Użyłem wtyczki eclipse do wygenerowania projektu eclipse i dodania zależności do ścieżki budowania. Dodałem nowe zależności do skryptu gradle, uruchomiłem gradle z gradle eclipse, zaktualizowałem mój projekt i zależności istnieją w ścieżce budowania i mogę z nich korzystać. Oto ważna część tego skryptu.

apply plugin: 'java'
apply plugin: 'eclipse'
repositories {
   mavenCentral()
}

dependencies {
   compile 'commons-io:commons-io:2.4'
}

Teraz wypróbowałem to w połączeniu z wtyczką android. Oto mój skrypt stopniowania dziur.

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')
    }
}

Jeśli użyję stopniowego zaćmienia, nic się nie dzieje. Potem dowiedziałem się, że wtyczka java dodaje zależności do ścieżki budowania. Dodałem więc

apply plugin: 'java'

i otrzymałem błąd, że wtyczka java nie jest kompatybilna z wtyczką android. Potem znalazłem rozwiązanie do automatycznego kopiowania słoików do folderu lib projektu.

def libDir = file('libs')

task copyLibs(type: Copy) {

    doFirst {
        libDir.mkdirs()
    }
    from configurations.runtime
    into libDir
}

Ale to zadanie wymaga także wtyczki java dla konfiguracji.runtime. Potrzebuję wtyczki android, aby utworzyć plik apk, więc nie jest rozwiązaniem, aby usunąć wtyczkę z Androidem. Czy ktoś ma pomysł, czy możliwe jest dodanie zależności do ścieżki budowania lub folderu lib w projekcie ecipse, który jest zgodny z wtyczką android?

EDYCJA: Jednym z moich pomysłów było umieszczenie wtyczki java w wtyczce eclipse, tak aby była stosowana tylko wtedy, gdy wtyczka eclipse zostanie zastosowana. Coś takiego:

apply plugin: 'eclipse'

eclipse{
    apply plugin: 'java'
}

Ale nadal pojawia się błąd, że wtyczki java i android nie są kompatybilne. Może rozumiem stopniowe błędne, ale zwykle wtyczka java powinna być stosowana tylko wtedy, gdy uruchomię wtyczkę eclipse, a nie wtyczkę android. Obawiam się, że moje zrozumienie i doświadczenie stopniowania nie jest wystarczająco dobre, aby rozwiązać to w ten sposób lub zrozumieć, dlaczego nie jest to możliwe.

questionAnswers(5)

yourAnswerToTheQuestion