Daren Klamer
06/16/2020, 12:05 PMval compilationConfiguration = createJvmCompilationConfigurationFromTemplate<Any> {
compilerOptions("-jvm-target", "1.8", "-Xnew-inference", "-Xinline-classes")
jvm {
if (classLoader != null) {
dependenciesFromClassloader(
classLoader = classLoader,
wholeClasspath = true
)
} else {
dependenciesFromCurrentContext(
wholeClasspath = true
)
}
providedProperties(typeMap)
}
hostConfiguration(ScriptingHostConfiguration {
jvm {
val cacheExtSetting = System.getProperty(COMPILED_SCRIPTS_CACHE_DIR_PROPERTY)
?: System.getenv(COMPILED_SCRIPTS_CACHE_DIR_ENV_VAR)
val cacheBaseDir = when {
cacheExtSetting == null -> System.getProperty("java.io.tmpdir")
?.let(::File)?.takeIf { it.exists() && it.isDirectory }
?.let { File(it, "main.kts.compiled.cache").apply { mkdir() } }
cacheExtSetting.isBlank() -> null
else -> File(cacheExtSetting)
}?.takeIf { it.exists() && it.isDirectory }
//cacheBaseDir = File("/tmp")
if (cacheBaseDir != null)
compilationCache(
CompiledScriptJarsCache { script, scriptCompilationConfiguration ->
File(cacheBaseDir,
compiledScriptUniqueName(script, scriptCompilationConfiguration) + ".jar")
}
)
}
})
}
ilya.chernikov
06/17/2020, 3:24 PMjvm.baseClassLoader
on the host configuration.
See the implementation of the CompiledScriptJarsCache
.