diff --git a/11-task-class/build.gradle b/11-task-class/build.gradle new file mode 100644 index 0000000..dd99084 --- /dev/null +++ b/11-task-class/build.gradle @@ -0,0 +1,22 @@ + +// Definition of custom task class +class DateTask extends DefaultTask { + + String prefixText = "Today is:" + + @TaskAction + void printDate() { + def dateTime = new Date() + println "${prefixText} ${dateTime.dateString}" + } +} + +task today(type: DateTask) { + description "Display date" +} + +task verboseToday(type: DateTask) { + description "Display polite message and date" + prefixText "I would like to inform you that today is:" +} + diff --git a/README.md b/README.md index b782089..49f21b7 100644 --- a/README.md +++ b/README.md @@ -108,3 +108,15 @@ building decorators. gradle tasks gradle helloWorld + +## 11-task-class + +Gradle allows to define custom task class. This class should contain +one method with annotation @TaskAction. This method will be executed. +Each property defined on class level is configurable from gradle task +(see verboseToday). + + gradle tasks + gradle today + gradle verboseToday +