У меня есть проект Gradle, который выполняет программу Java:
apply plugin: "base"
apply plugin: "java"
configurations {
javaDep
}
dependencies {
javaDep files("${project.rootDir}/cli-app.jar")
}
task cliApp(type: JavaExec) {
main = "some.cli.App"
classpath = configurations.javaDep
args("program", "args")
}
public class App {
private static boolean isInitialized = false;
private static ExpensiveObject data;
public static void main(String[] args) {
if (!isInitialized) {
data = doSomeExpensiveInitialization();
isInitialized = true;
}
// do stuff
}
}
Проблема в том, что doSomeExpensiveInitialization()
запускается каждый раз, когда выполняется задача cliApp
Gradle. Есть ли способ сохранить данные в памяти, чтобы данные инициализировались только один раз и не пересчитывались, пока демон Gradle жив?