Improved: Default build task

This commit is contained in:
Bram 2024-07-08 18:45:25 +02:00
parent 8480f5a52d
commit 594d00bd93
No known key found for this signature in database
GPG key ID: 13E608068F40E3CC
3 changed files with 61 additions and 9 deletions

View file

@ -1,9 +1,5 @@
import java.io.ByteArrayOutputStream import java.io.ByteArrayOutputStream
plugins {
entitylib.`library-conventions`
}
group = "me.tofaa.entitylib" group = "me.tofaa.entitylib"
description = rootProject.name description = rootProject.name
val fullVersion = "2.4.1" val fullVersion = "2.4.1"
@ -25,3 +21,51 @@ fun getVersionMeta(): String {
return "$commitHash-SNAPSHOT" return "$commitHash-SNAPSHOT"
} }
version = "$fullVersion${getVersionMeta()}" version = "$fullVersion${getVersionMeta()}"
tasks {
wrapper {
gradleVersion = "8.8"
distributionType = Wrapper.DistributionType.ALL
}
register("build") {
// Filter out the 'platforms' directory itself, but include its subprojects
val subModuleBuildTasks = subprojects
.filter { it.name != "platforms" }
.mapNotNull { it.tasks.findByName("build") }
dependsOn(subModuleBuildTasks)
group = "build"
doLast {
val buildOut = project.layout.buildDirectory.dir("libs").get().asFile.apply {
if (!exists()) mkdirs()
}
subprojects.forEach { subproject ->
val subIn = subproject.layout.buildDirectory.dir("libs").get().asFile
if (subIn.exists()) {
copy {
from(subIn) {
include("EntityLib-*.jar")
exclude("*-javadoc.jar", "*-sources.jar")
}
into(buildOut)
}
}
}
}
}
register<Delete>("clean") {
val cleanTasks = subprojects
.filter { it.name != "platforms" }
.mapNotNull { it.tasks.findByName("clean") }
dependsOn(cleanTasks)
group = "build"
delete(rootProject.layout.buildDirectory)
}
defaultTasks("build")
}

View file

@ -48,3 +48,14 @@ tasks {
defaultTasks("build") defaultTasks("build")
} }
// So that SNAPSHOT is always the latest SNAPSHOT
configurations.all {
resolutionStrategy.cacheDynamicVersionsFor(0, TimeUnit.SECONDS)
}
val taskNames = gradle.startParameter.taskNames
if (taskNames.any { it.contains("build") }
&& taskNames.any { it.contains("publish") }) {
throw IllegalStateException("Cannot build and publish at the same time.")
}

View file

@ -1,5 +1,2 @@
jdk: jdk:
- temurin-21 - temurin-21
install:
- ./gradlew clean build