Генерируемый класс или дата сборки приложения

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

Реклама

Мы в соцсетях

tw tg yt gt