Select Git revision
build.gradle
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
build.gradle 2.27 KiB
import java.nio.charset.StandardCharsets
import java.nio.file.Files
import java.nio.file.Paths
import java.util.concurrent.TimeUnit
plugins {
id("application")
id("java")
id("wrapper")
id("com.github.johnrengelman.shadow").version("2.0.4")
}
final SOURCE_ENCODING = "UTF-8"
wrapper {
gradleVersion = "4.8.1"
distributionType = Wrapper.DistributionType.ALL
}
repositories {
mavenLocal()
jcenter()
maven {
name("Sonatype snapshots")
url("https://oss.sonatype.org/content/repositories/snapshots")
}
maven {
name("Sonatype releases")
url("https://oss.sonatype.org/content/repositories/releases")
}
}
configurations.all {
resolutionStrategy {
cacheChangingModulesFor(0, TimeUnit.SECONDS)
}
}
dependencies {
compile(group: "de.hhu.stups", name: "de.prob2.kernel", version: "3.2.10-SNAPSHOT", changing: true)
compile(group: "io.github.spencerpark", name: "jupyter-jvm-basekernel", version: "2.2.1-SNAPSHOT", changing: true)
compile(group: "org.jetbrains", name: "annotations", version: "16.0.1")
compile(group: "se.sawano.java", name: "alphanumeric-comparator", version: "1.4.1")
}
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
tasks.withType(JavaCompile) {
options.encoding = SOURCE_ENCODING
}
mainClassName = "de.prob2.jupyter.Main"
final KERNEL_SPEC_PATH = project.projectDir.toPath().resolve(Paths.get("kernelspec", "prob2"))
final KERNEL_JSON_PATH = KERNEL_SPEC_PATH.resolve("kernel.json")
task createKernelSpec {
dependsOn = [shadowJar]
ext.probHome = project.hasProperty("probHome") ? project.probHome : null
inputs.property("probHome", probHome).optional(true)
outputs.files(KERNEL_JSON_PATH.toFile())
doFirst {
final jarPath = shadowJar.archivePath
final probHomeDef = probHome != null ? "\n\t\t\"-Dprob.home=$probHome\"," : ""
final jsonText = """{
\t"argv": [
\t\t"java",$probHomeDef
\t\t"-jar",
\t\t"$jarPath",
\t\t"{connection_file}"
\t],
\t"display_name": "ProB 2",
\t"language": "prob"
}
"""
Files.write(KERNEL_JSON_PATH, jsonText.getBytes(StandardCharsets.UTF_8))
}
}
task installKernelSpec(type: Exec) {
dependsOn = [createKernelSpec]
executable = "python3"
args = ["-m", "jupyter", "kernelspec", "install", "--sys-prefix", KERNEL_SPEC_PATH.toString()]
}
if (hasProperty("pythonInterpreter")) {
installKernelSpec.executable = pythonInterpreter
}