-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
86 lines (59 loc) · 1.54 KB
/
build.gradle.kts
File metadata and controls
86 lines (59 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
plugins {
// Declare the java plugin (Stops the Java LS extension from freaking out)
id("java")
// Declare the application plugin (Stops Gradle from freaking out)
id("application")
}
subprojects {
// === Plugins ===
// Compiles Java
apply(plugin = "java-library")
// Adds the `run` task
apply(plugin = "application")
// === Plugins ===
// === Java ===
// Use specific Java version
extensions.configure<JavaPluginExtension> {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
}
configure<SourceSetContainer> {
named("main") {
// Gradle will look for main code in:
// `./src` instead of `./src/main/java`
java.srcDirs("src")
}
named("test") {
// Gradle will look for test code in:
// `./test` instead of `./src/test/java`
java.srcDirs("test")
}
}
// Set the entry point to all projects
application {
mainClass.set("Solution")
}
// === Java ===
// === Dependencies ===
var libs = rootProject.libs
// Tell Gradle to use Maven Central for dependencies
repositories {
mavenCentral()
}
dependencies {
"testImplementation"(libs.junit)
"testRuntimeOnly"("org.junit.platform:junit-platform-launcher")
}
// === Dependencies ===
// === Testing ===
tasks.withType<Test> {
useJUnitPlatform()
}
// === Testing ===
}
// Store all project `build` dirs under the root `build` dir
allprojects {
val relPath = project.path.removePrefix(":").replace(":", "/")
buildDir = File(rootProject.buildDir, relPath)
}