2017-03-14 5 views
0

Ich benutze 'anwenden von:' in meinem Build.gradle Skript. Die Verwendung von "Anwenden von" erfolgt in meinem benutzerdefinierten Plugin. Hat sonst noch jemand so ein Problem gehabt?Gradle 'anwenden von:' werfen Ausnahme

apply from: '../directory/' + chosenSubDir + '/build.gradle' 

Ich erhalte folgende Ausnahme:

java.util.LinkedHashMap cannot be cast to org.gradle.api.Project 

Mein Punkt ist, alle Abschnitte aus richtigen Datei zu erhalten (auch build.gradle) und ordnen sie ein Feld einer Hilfsklasse, die diese Daten gespeichert werden .

EDIT: Für jetzt ist der gesamte Code in Build.main Skript, aber schließlich wird es aufgeteilt.

class MyPlugin implements Plugin<Project> { 
    project.extensions.create('myFile', HelperClass) 

    project.task('task') { 
     doLast { 
      //listing files 

      //choosing file by user 

      //here receiving an exception \/ 
      apply from: '../DirWithFiles/' + chosenFile 

      //further operations with content of chosen file 
     } 
    } 
} 

class HelperClass { 
    def config = { 
     set {} 
     map {} 
     //etc.. 
    } 
} 

apply plugin: MyPlugin 

rufe ich mein Plugin durch Aufgabe Aufruf ./gradlew

+0

Es sollte funktionieren, teilen Sie bitte die gesamte build.gradle, die das Problem reproduziert. – Opal

+0

@Opal Bitte werfen Sie einen Blick auf den Code, den ich geteilt habe. – Arcadio

+0

Warum bewerben Sie sich in einer Aufgabe? 'apply' sollte am Anfang des Plugins aufgerufen werden. – Opal

Antwort

-1

Als Opal mir geraten zu tun, habe ich ‚project.apply von‘ anstelle von ‚gelten ab‘ und es funktioniert jetzt. Vielen Dank!