Сохраняйте данные c инициализированными в задаче Gradle JavaExe c - PullRequest
0 голосов
/ 11 марта 2020

У меня есть проект 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 жив?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...