2017-02-24 7 views
0

Ich wollte Gradle Task von meinem Plugin-Code ausführen.Wie Task gradle auszuführen

Jeder kann mir vorschlagen, wie kann ich programmgesteuert aus Code Code ausführen.

Danke, Sumeet. So in Plugin-Code

Antwort

1

Sie können es als

task a { 
    doLast { 
    println 'test' 
    } 
} 

task b { 
    doLast { 
     a.execute() 
    } 
} 

folgen könnte es etwas ähnliches wie

project.tasks.<taskname>.execute() 

Aber dies könnte geändert werden, in der Zukunft sein. Sie sollten sich auf die Verkettung der Aufgaben verlassen, anstatt sie direkt aufzurufen.

+0

Hallo Martin, zuerst einmal vielen Dank für die Antwort auf meine Frage. Ich versuche, die von Ihnen zur Verfügung gestellte Lösung anzuwenden, aber bis jetzt nicht erfolgreich. Ich habe die Instanz von Project (com.intellij.openapi.project.Project) verwendet und dann versucht, die Task für diese Instanz aufzurufen, konnte aber keine Task für die Projektinstanz abrufen. Können Sie mir bitte bestätigen, welche Projektklasse Sie in Ihre Lösung aufgenommen haben? – sumeet

+0

Die Instanz ist korrekt. Vielleicht ist die Aufgabe zum Zeitpunkt des Anrufs noch nicht verfügbar. Schwierig, dasselbe zu sein, ohne den Code zu sehen. Versuchen Sie, nachzusehen, indem Sie 'project.tasks.findByName (name)' aufrufen. Wenn es null zurückgibt, versuchen Sie es dann zu unterschiedlichen Zeiten, wie es ruft in 'gradle.taskGraph.whenReady {taskGraph -> project.tasks.findByName (name) }' –

+0

Klasse MyAction erweitert AnAction { public void actionPerformed (AnActionEvent anActionEvent) { mProject = anActionEvent.getProject(); Pfad = mProject.getBasePath(); ApplicationManager.getApplication(). RunWriteAction (runTasks()); } Runnable runTasks() { neue Runnable() return { public void run() { CommandProcessor.getInstance(). ExecuteCommand (mProject, new Runnable() {public void run() {try { Liste Aufgaben = new Arraylist (); String taskname = Constant.MY_TASK; tasks.add (Aufgabenname). mProject } ich hier auf mProject Instanz in letzter Linie nicht Aufgabe bin immer ... – sumeet

Verwandte Themen