Fügen Sie Abhängigkeiten über Gradle zu Eclipse in Android-Projekten hinzu

Ich habe ein Problem beim automatischen Hinzufügen von Abhängigkeiten zum Eclipse-Android-Projekt über Gradle. Ich habe nur ein wenig erfahrung mit gradle. Bis jetzt habe ich zwei Java-Projekte mit gradle erstellt. Ein Glas und ein ausführbares Glas. Das funktioniert ohne Probleme. Ich habe das Eclipse-Plugin verwendet, um das Eclipse-Projekt zu generieren und die Abhängigkeiten zum Erstellungspfad hinzuzufügen. Ich habe dem gradle-Skript neue Abhängigkeiten hinzugefügt, gradle mit gradle eclipse gestartet, mein Projekt aktualisiert und die Abhängigkeiten sind im Erstellungspfad vorhanden, und ich kann sie verwenden. Hier ist der wichtige Teil dieses Skripts.

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

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

Also habe ich es jetzt in Kombination mit dem Android Plugin versucht. Hier ist mein Hole Gradle-Skript.

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

Wenn ich gradle eclipse benutze, passiert nichts. Dann fand ich heraus, dass das Java-Plugin die Abhängigkeiten zum Erstellungspfad hinzufügt. Also habe ich hinzugefügt

apply plugin: 'java'

dazu und bekam den fehler, dass das java plugin nicht mit dem android plugin kompatibel ist. Dann fand ich eine Lösung, um die Gläser automatisch in den lib-Ordner des Projekts zu kopieren.

def libDir = file('libs')

task copyLibs(type: Copy) {

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

Für diese Aufgabe wird jedoch auch das Java-Plugin für die configuration.runtime benötigt. Ich brauche das Android-Plugin, um die APK-Datei zu erstellen, daher ist es keine Lösung, das Android-Plugin zu entfernen. Hat jemand eine Idee, ob es möglich ist, die Abhängigkeiten zum Erstellungspfad oder zum lib-Ordner im ecipse-Projekt hinzuzufügen, die mit dem Android-Plugin kompatibel sind?

BEARBEITEN: Eine meiner Ideen war, das Java-Plugin in das Eclipse-Plugin einzufügen, damit es nur angewendet wird, wenn das Eclipse-Plugin angewendet wird. Etwas wie das:

apply plugin: 'eclipse'

eclipse{
    apply plugin: 'java'
}

Aber ich bekomme immer noch den Fehler, dass die Java- und Android-Plugins nicht kompatibel sind. Vielleicht verstehe ich gradle falsch, aber normalerweise sollte das Java-Plugin nur angewendet werden, wenn ich das Eclipse-Plugin starte und nicht das Android-Plugin. Ich habe Angst, dass mein Verständnis und meine Erfahrung mit gradle nicht gut genug sind, um dies auf diese Weise zu lösen oder zu verstehen, warum es nicht möglich ist.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage