Генерируемый класс или дата сборки приложения
- // Добавляем новую папку исходников
 - ext.generatedJavaDir = "${rootProject.projectDir}/src/main/generatedJava"
 - sourceSets.main.java.srcDirs += project.generatedJavaDir
 - // Таск генерирования исходника com/example/Gen.java
 - task generateJavaSources() {
 - doLast {
 - def source = """
 - package com.example;
 - class Gen {
 - public static final String BUILD_DATE = "${new Date().format('YYMMdd')}";
 - }
 - """
 - def genFile = new File("${project.generatedJavaDir}/com/example/Gen.java")
 - genFile.getParentFile().mkdirs()
 - genFile.write(source)
 - }
 - }
 - // Ставим зависимость тасков так, чтобы перед компиляцией генерировался исходник
 - compileJava.dependsOn(generateJavaSources)
 
Перед каждой компиляцией будет генерироваться класс с константой BUILD_DATE, в которой будет записана дата сборки.
При этом создаётся новый srcDir и структура папок теперь будет такой:
    
При этом создаётся новый srcDir и структура папок теперь будет такой:
- src
 - ├───main
 - │ ├───generatedJava
 - │ │ └───com
 - │ │ └───example
 - │ │ └───Gen.java
 - │ ├───java
 - │ │
 - │ └───resources
 - │
 - └───test