在gradlejavaexec任务中保持静态数据初始化

在gradlejavaexec任务中保持静态数据初始化,java,gradle,Java,Gradle,我有一个执行Java程序的Gradle项目: 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 = configura

我有一个执行Java程序的Gradle项目:

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")
}
公共类应用程序{
私有静态布尔值isInitialized=false;
私有静态费用对象数据;
公共静态void main(字符串[]args){
如果(!i初始化){
data=剂量Expensionize();
isInitialized=true;
}
//做事
}
}

问题是每次执行
cliApp
Gradle任务时都会运行
doSomeExpensiveInitialization()
。有没有办法将数据保存在内存中,这样数据只初始化一次,并且只要Gradle守护进程处于活动状态,就不会重新计算?

它是什么数据?它多久改变一次?你不能把它序列化到磁盘上吗?数据的用途是什么?为什么它是java应用程序?你能把它变成一个自定义任务吗?数据是多种不同的东西。数据实际上已经从磁盘反序列化了。Java程序在内部使用数据。在实际的程序中,Java应用程序实际上是从artifactory下载的依赖项,因此它不能真正成为自定义任务。