2017-08-06 10 views
1

DefaultTaskクラスを拡張してカスタムタスククラスを作成することは可能です。タスクルールでも同じことが可能ですか?どんな授業を延長しなければならないのですか?このルールと同等のカスタムルールクラスをGradleドキュメントから取得したいとしましょう:カスタムルールクラスをカスタマイズする

tasks.addRule("Pattern: ping<ID>") { String taskName -> 
    if (taskName.startsWith("ping")) { 
     task(taskName) { 
      doLast { 
       println "Pinging: " + (taskName - 'ping') 
      } 
     } 
    } 
} 

私はGradle 4.0を使用しています。

答えて

1

、ここで説明したように、私はプラグインを書き込むことによって、これを達成:https://docs.gradle.org/4.0/userguide/custom_plugins.html

package com.domain 

import org.gradle.api.Plugin 
import org.gradle.api.Project 

class PingPlugin implements Plugin<Project> { 
    void apply(Project project) { 
     project.tasks.addRule("Pattern: ping<ID>") { String taskName -> 
      if (taskName.startsWith("ping")) { 
       project.tasks.create(taskName) { 
        doLast { 
         println "Pinging: " + (taskName - 'ping') 
        } 
       } 
      } 
     } 
    } 
} 

私はこれが最善の方法であるのかはわからないが、それは動作します。それを使用するのに必要なのは、build.gradleの1行です。

apply plugin: com.domain.PingPlugin 
関連する問題