-apply plugin: "java"
+buildscript {
+ ext.kotlinVersion = '1.9.20'
+
+ repositories {
+ mavenCentral()
+ }
+ dependencies {
+ classpath group: "org.ajoberstar", name: "gradle-git", version: "1.1.0"
+ }
+}
+
+plugins {
+ id 'java'
+ id('org.jetbrains.kotlin.jvm') version '1.9.20'
+}
+
apply plugin: "jacoco"
apply plugin: "idea"
+kotlin {
+ jvmToolchain(17)
+}
+
+java {
+ toolchain {
+ languageVersion.set(JavaLanguageVersion.of(17))
+ }
+}
+
idea {
- project {
- languageLevel = "1.8"
- }
+ project {
+ languageLevel = "17"
+ }
}
group = "net.pterodactylus"
version = "0.1"
-sourceCompatibility = 1.8
-targetCompatibility = 1.8
-
repositories {
- mavenCentral()
+ mavenCentral()
}
dependencies {
- compile group: "com.google.guava", name: "guava", version: "14.0-rc1"
- compile group: "log4j", name: "log4j", version: "1.2.17"
- compile group: "org.apache.httpcomponents", name: "httpclient", version: "4.4"
- compile group: "org.jsoup", name: "jsoup", version: "1.7.1"
- compile group: "javax.mail", name: "mail", version: "1.4.6-rc1"
- compile group: "org.apache.commons", name: "commons-lang3", version: "3.1"
- compile group: "com.fasterxml.jackson.core", name: "jackson-core", version: "2.1.2"
- compile group: "com.fasterxml.jackson.core", name: "jackson-annotations", version: "2.1.2"
- compile group: "com.fasterxml.jackson.core", name: "jackson-databind", version: "2.1.2"
+ implementation group: "com.google.guava", name: "guava", version: "14.0-rc1"
+ implementation group: "log4j", name: "log4j", version: "1.2.17"
+ implementation group: "org.apache.httpcomponents", name: "httpclient", version: "4.4"
+ implementation group: "org.jsoup", name: "jsoup", version: "1.16.1"
+ implementation group: "javax.mail", name: "mail", version: "1.4.6-rc1"
+ implementation group: "org.apache.commons", name: "commons-lang3", version: "3.1"
+ implementation group: "com.fasterxml.jackson.core", name: "jackson-databind", version: "2.16.1"
+ implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.16.1'
+ implementation group: 'com.fasterxml.jackson.module', name: 'jackson-module-kotlin', version: '2.16.1'
+ implementation group: "com.google.inject", name: "guice", version: "7.0.0"
+ implementation group: "org.jetbrains.kotlinx", name: "kotlinx-html-jvm", version: "0.11.0"
+ implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.2'
- testCompile group: "junit", name: "junit", version:"4.12"
- testCompile group: "org.hamcrest", name: "hamcrest-library", version:"1.3"
- testCompile group: "org.mockito", name: "mockito-core", version:"1.9.5"
+ testImplementation group: "junit", name: "junit", version: "4.13.2"
+ testImplementation group: "org.hamcrest", name: "hamcrest", version: "2.2"
+ testImplementation group: "org.mockito", name: "mockito-core", version: "5.11.0"
+ testImplementation group: "com.spotify", name: "hamcrest-jackson", version: "1.3.2"
}
task fatJar(type: Jar) {
- baseName = project.name + "-all"
- manifest {
- attributes(
- "Main-Class": "net.pterodactylus.rhynodge.engine.Starter"
- )
- }
- from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
- with jar
- dependsOn test
+ archiveBaseName.set(project.name + "-all")
+ manifest {
+ attributes(
+ "Main-Class": "net.pterodactylus.rhynodge.engine.Starter"
+ )
+ }
+ duplicatesStrategy = DuplicatesStrategy.INCLUDE
+ from { configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
+ from { sourceSets.generated.resources.srcDirs }
+ with jar
+ dependsOn test
}
+
+tasks.named('test') {
+ jvmArgs += "--add-opens=java.base/java.lang=ALL-UNNAMED"
+ jvmArgs += "--add-opens=java.base/java.util=ALL-UNNAMED"
+}
+
+task createVersion() {
+ sourceSets {
+ generated {
+ resources {
+ srcDir "src/generated/resources"
+ }
+ }
+ }
+ processResources.dependsOn(createVersion)
+}
+
+tasks.named("processGeneratedResources") {
+ duplicatesStrategy = DuplicatesStrategy.INCLUDE
+}
+
+import org.ajoberstar.grgit.Grgit
+createVersion {
+ doLast {
+ def gitRepo = Grgit.open(projectDir)
+ version = gitRepo.describe()
+ new File("src/generated/resources").mkdirs()
+ new File("src/generated/resources/version.txt").withWriter() { it.write(version) }
+ }
+}
+
+jacoco {
+ toolVersion = "0.8.11"
+}
+
+/* vim: set ts=4 sw=4 et: */