🔀 Merge branch 'website/epic-games' into next
[rhynodge.git] / build.gradle
1 buildscript {
2     ext.kotlinVersion = '1.9.20'
3
4     repositories {
5         mavenCentral()
6     }
7     dependencies {
8         classpath group: "org.ajoberstar", name: "gradle-git", version: "1.1.0"
9     }
10 }
11
12 plugins {
13     id 'java'
14     id('org.jetbrains.kotlin.jvm') version '1.9.20'
15 }
16
17 apply plugin: "jacoco"
18 apply plugin: "idea"
19
20 kotlin {
21     jvmToolchain(17)
22 }
23
24 java {
25     toolchain {
26         languageVersion.set(JavaLanguageVersion.of(17))
27     }
28 }
29
30 idea {
31     project {
32         languageLevel = "17"
33     }
34 }
35
36 group = "net.pterodactylus"
37 version = "0.1"
38
39 repositories {
40     mavenCentral()
41 }
42
43 dependencies {
44     implementation group: "com.google.guava", name: "guava", version: "14.0-rc1"
45     implementation group: "log4j", name: "log4j", version: "1.2.17"
46     implementation group: "org.apache.httpcomponents", name: "httpclient", version: "4.4"
47     implementation group: "org.jsoup", name: "jsoup", version: "1.16.1"
48     implementation group: "javax.mail", name: "mail", version: "1.4.6-rc1"
49     implementation group: "org.apache.commons", name: "commons-lang3", version: "3.1"
50     implementation group: "com.fasterxml.jackson.core", name: "jackson-databind", version: "2.16.1"
51     implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.16.1'
52     implementation group: 'com.fasterxml.jackson.module', name: 'jackson-module-kotlin', version: '2.16.1'
53     implementation group: "com.google.inject", name: "guice", version: "7.0.0"
54     implementation group: "org.jetbrains.kotlinx", name: "kotlinx-html-jvm", version: "0.11.0"
55     implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.2'
56
57     testImplementation group: "junit", name: "junit", version: "4.13.2"
58     testImplementation group: "org.hamcrest", name: "hamcrest", version: "2.2"
59     testImplementation group: "org.mockito", name: "mockito-core", version: "5.11.0"
60     testImplementation group: "com.spotify", name: "hamcrest-jackson", version: "1.3.2"
61 }
62
63 task fatJar(type: Jar) {
64     archiveBaseName.set(project.name + "-all")
65     manifest {
66         attributes(
67                 "Main-Class": "net.pterodactylus.rhynodge.engine.Starter"
68         )
69     }
70     duplicatesStrategy = DuplicatesStrategy.INCLUDE
71     from { configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
72     from { sourceSets.generated.resources.srcDirs }
73     with jar
74     dependsOn test
75 }
76
77 tasks.named('test') {
78     jvmArgs += "--add-opens=java.base/java.lang=ALL-UNNAMED"
79     jvmArgs += "--add-opens=java.base/java.util=ALL-UNNAMED"
80 }
81
82 task createVersion() {
83     sourceSets {
84         generated {
85             resources {
86                 srcDir "src/generated/resources"
87             }
88         }
89     }
90     processResources.dependsOn(createVersion)
91 }
92
93 tasks.named("processGeneratedResources") {
94     duplicatesStrategy = DuplicatesStrategy.INCLUDE
95 }
96
97 import org.ajoberstar.grgit.Grgit
98 createVersion {
99     doLast {
100         def gitRepo = Grgit.open(projectDir)
101         version = gitRepo.describe()
102         new File("src/generated/resources").mkdirs()
103         new File("src/generated/resources/version.txt").withWriter() { it.write(version) }
104     }
105 }
106
107 jacoco {
108     toolVersion = "0.8.11"
109 }
110
111 /* vim: set ts=4 sw=4 et: */