2017-09-25 8 views
1

Je crée un plugin gradle comme ci-dessousPuis-je créer une tâche Gradle dans le plugin avec le paramètre dependsOn?

class MyPlugin implements Plugin<Project> { 
    void apply(Project project) { 
     project.extensions.create('testCoverageVerificationTask', TestCoverageVerificationPluginExtension) 
     project.tasks.create('testCoverageVerification', TestCoverageVerificationTask)   
    } 
} 

Et pour l'utiliser, je dois ajouter à mon build.gradle

apply plugin: my.package.MyPlugin 

testCoverageVerificationTask { 
    myreport = "testing report" 
} 

testCoverageVerification.dependsOn "myDependentTask" 

Cependant, je pense que ce serait mieux pour avoir le dependsOn comme un autre paramètre dans le testCoverageVerificationTask de sorte qu'il n'a pas besoin d'être défini séparément. Est-ce faisable?

Note: Définition de la tâche normale pourrait faire

task myTask(dependsOn: 'compile') { 
    doLast { 
     println 'I am not affected' 
    } 
} 

Mais je ne peux pas faire

testCoverageVerificationTask(dependsOn: "myDependentTask") { 
    myreport = "testing report" 
} 

Répondre

1

Utilisation:

Task task = project.tasks.create('testCoverageVerification', TestCoverageVerificationTask) 
task.dependsOn("compile") 
+0

C'est génial. Est-ce que "compiler" peut être un paramètre envoyé à la place? Comme je pourrais avoir des tâches dépendantes légèrement différentes entre différents modules. – Elye

+0

@Elye Désolé pour le retard. Pour être honnête je ne sais pas si ça peut être passé en paramètre. –