2015-04-29 24 views
5

Dołączam drugi plik gradowy my.gradle w moim pliku build.gradle.Dodawanie zależności Zadanie do istniejącego zadania wtyczki w Gradle?

Zawartość my.gradle jest:

zastosowanie wtyczki: MyPlugin

class MyPlugin implements Plugin<Project> { 

    @Override 
    void apply(Project project) { 
     project.tasks.create(name: "myTask", type: MyTaskClass) { 
     } 
    } 
} 

w moim build.gradle mam ustawiony na szczycie:

apply from: 'myPlugin.gradle' 

Teraz chcę ustawić zależność zadania w build.gradle z:

tasks.myPlugin.myTask.dependsOn += someOtherTask 

Kiedy budować pojawia się następujący błąd:

> Could not find property 'myPlugin' on task set. 

Jak mogę uzyskać dostęp myTask z myPlugin w build.gradle?

Edycja: Próbowałem upewnić się, że niektóreTask działa po moim Task. Próbowałem to zrobić z:

taskX.finalizedBy taskY 

w moim przypadku:

tasks.myPlugin.myTask.finalizedBy someOtherTask 

ale były nie działa.

+0

Czy to kod psuedo? Co tak naprawdę próbujesz zrobić? –

+0

Tak, to jest łatwe do zrobienia w 'Gradle', masz odpowiednią składnię. Jaki jest problem? Czy masz do pokazania plik 'build.gradle'? –

+0

wydaje się, że używasz zależyOn w odwrotnej kolejności. jeśli A ma biec przed B, w definicji zadania B powinieneś powiedzieć zadanie B - zależnie A zobacz: https://gradle.org/docs/current/userguide/more_about_tasks.html#sec:adding_dependencies_to_tasks – RaGe

Odpowiedz

1

Poniższy skrypt będzie wykonać zadanie:

my.gradle:

apply plugin: MyPlugin 

class MyPlugin implements Plugin<Project> { 

    @Override 
    void apply(Project project) { 
     project.tasks.create(name: "myTask", type: Copy) { 
     } 
    } 
} 

budować. gradle:

apply from: 'my.gradle' 

task someOtherTask << { 
    println 'doLast' 
} 

project.tasks.myTask.dependsOn(someOtherTask) 
-1

Jeśli poprawnie umieścisz wtyczkę, powinieneś zobaczyć swoje zadanie. Na przykład, jeśli zawierają wtyczki Java i uruchomić

Gradle zadania --all

Powinieneś zobaczyć compileJava włączone. To samo dla Ciebie, uruchom gradle tasks --all. Powinieneś być w stanie odwołać go jako tasks.myTask lub zadań [ 'myTask']

Powiązane problemy