2016-06-22 2 views
1

Ich schreibe eine Mega-Task, die eine Java-Anwendung ausführen sollte, aber ich kann nicht den Klassenpfad meines Android-Projekts abrufen.Klassenpfad von Android-Projekt in Großbuchstaben erhalten

Meine gradle Aufgabe:

task helloWorld(type: JavaExec) { 
    classpath = buildscript.configurations.classpath; 
    main = "com.test.HelloWorld"; 
} 

Dies funktioniert nicht.

Wie kann ich den Klassenpfad (der alle Klassen und Abhängigkeiten enthält) abrufen?

+0

Mögliche Duplikate von [Get Klassenpfad für Großprojekt mit Android-Plugin] (http://stackoverflow.com/questions/28222747/get-classpath-for-gradle-project-using-android-plugin) – sschuberth

Antwort

1

Ich habe eine Lösung gefunden, die Quellordner und die Bibliotheken. Aber ich vermisse immer noch die android.jar. Es ist eine andere Frage für dieses Problem: Finding android.jar for a own written Java task (in gradle)

class JavaTask extends JavaExec {  
    @Override 
    void exec() { 
     List<String> classpaths = new ArrayList<>(Arrays.asList(getClasspath().getAsPath().split(";"))); 

     project.android.libraryVariants.all { variant -> 
      classpaths.add(variant.javaCompile.destinationDir.getPath()); 
     } 

     org.gradle.api.artifacts.Configuration config = project.configurations.getByName("compile"); 
     for (String path : config.getAsPath().split(";")) { 
      classpaths.add(path); 
     } 

     setClasspath(project.files(classpaths.toArray(new String[classpaths.size()]))); 
     super.exec(); 
    } 
}