Генерируемый класс или дата сборки приложения
- // Добавляем новую папку исходников
- 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