gradle and build improvements

This commit is contained in:
broccolai
2024-05-11 23:40:09 +00:00
committed by Nick
parent 32270b6176
commit 7ef48402fb
27 changed files with 368 additions and 420 deletions
-10
View File
@@ -1,10 +0,0 @@
import ca.stellardrift.build.configurate.ConfigFormats
import ca.stellardrift.build.configurate.catalog.PolyglotVersionCatalogExtension
plugins {
id("ca.stellardrift.polyglot-version-catalogs") version "5.0.1"
}
extensions.configure<PolyglotVersionCatalogExtension> {
from(ConfigFormats.YAML, file("../gradle/libs.versions.yml"))
}
@@ -1,21 +0,0 @@
plugins {
`java-library`
}
tasks {
val collectJars by registering(Copy::class) {
val tasks = subprojects.filter { it.path != ":common" }.map { it.tasks.named("remapJar") }
dependsOn(tasks)
from(tasks)
into(buildDir.resolve("libs"))
}
assemble {
dependsOn(collectJars)
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
+2 -3
View File
@@ -1,13 +1,12 @@
plugins { plugins {
base
id("cobblemon.root-conventions") id("cobblemon.root-conventions")
id ("net.nemerosa.versioning") version "2.8.2" id ("net.nemerosa.versioning") version "2.8.2"
} }
group = "com.cobblemon.mod"
version = "${project.property("mod_version")}+${project.property("mc_version")}" version = "${project.property("mod_version")}+${project.property("mc_version")}"
val isSnapshot = project.property("snapshot")?.equals("true") ?: false val isSnapshot = project.property("snapshot")?.equals("true") ?: false
if (isSnapshot) { if (isSnapshot) {
version = "$version-${versioning.info.branch}-${versioning.info.build}" val fixedBranchName = versioning.info.branch.substringAfter("/")
version = "$version-${fixedBranchName}-${versioning.info.build}"
} }
+18 -24
View File
@@ -1,5 +1,5 @@
import extensions.isSnapshot import utilities.isSnapshot
import extensions.version import utilities.version
import java.time.OffsetDateTime import java.time.OffsetDateTime
import java.time.ZoneOffset import java.time.ZoneOffset
import java.time.format.DateTimeFormatter import java.time.format.DateTimeFormatter
@@ -20,7 +20,7 @@ plugins {
id("net.kyori.blossom") id("net.kyori.blossom")
id("org.jetbrains.gradle.plugin.idea-ext") id("org.jetbrains.gradle.plugin.idea-ext")
id ("net.nemerosa.versioning") version "2.8.2" id("net.nemerosa.versioning") version "2.8.2"
} }
architectury { architectury {
@@ -34,31 +34,26 @@ repositories {
} }
dependencies { dependencies {
implementation(libs.stdlib) implementation(libs.bundles.kotlin)
implementation(libs.reflect) modImplementation(libs.fabric.loader)
modImplementation(libs.fabricLoader)
//Flywheel has no common dep so just pick one and don't use any platform specific code in common
// modCompileOnly(libs.flywheelFabric)
modApi(libs.molang) modApi(libs.molang)
compileOnlyApi(libs.jeiApi)
modCompileOnly(libs.adornFabric)
modCompileOnly(libs.lambDynamicLights) { isTransitive = false }
// For Showdown // Integrations
compileOnlyApi(libs.jei.api)
modCompileOnly(libs.bundles.fabric.integrations.compileOnly) {
isTransitive = false
}
// Flywheel has no common dep so just pick one and don't use any platform specific code in common
// modCompileOnly(libs.flywheelFabric)
// Showdown
modCompileOnly(libs.graal) modCompileOnly(libs.graal)
//shadowCommon group: 'commons-io', name: 'commons-io', version: '2.6' // Data Storage
modCompileOnly(libs.bundles.mongo)
// For datastore // Unit Testing
modCompileOnly(libs.mongoDriverCore) testImplementation(libs.bundles.unitTesting)
modCompileOnly(libs.mongoDriverSync)
testImplementation(libs.fabricJunit)
testImplementation(libs.junitParams)
testImplementation(libs.mockito)
testImplementation(libs.mockk)
testImplementation(libs.classgraph)
} }
tasks.withType<Test> { tasks.withType<Test> {
@@ -94,7 +89,6 @@ sourceSets {
property("gitCommit", versioning.info.commit) property("gitCommit", versioning.info.commit)
property("branch", versioning.info.branch) property("branch", versioning.info.branch)
System.getProperty("buildNumber")?.let { property("buildNumber", it) } System.getProperty("buildNumber")?.let { property("buildNumber", it) }
property("timestamp", OffsetDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ofPattern("MM/dd/yyyy hh:mm:ss")) + " UTC")
} }
} }
} }
@@ -26,7 +26,6 @@ public final class CrashReportMixin {
cobblemon.add("Is Snapshot", CobblemonBuildDetails.SNAPSHOT); cobblemon.add("Is Snapshot", CobblemonBuildDetails.SNAPSHOT);
cobblemon.add("Git Commit", CobblemonBuildDetails.INSTANCE.smallCommitHash() + " (" + "https://gitlab.com/cable-mc/cobblemon/-/commit/" + CobblemonBuildDetails.GIT_COMMIT + ")"); cobblemon.add("Git Commit", CobblemonBuildDetails.INSTANCE.smallCommitHash() + " (" + "https://gitlab.com/cable-mc/cobblemon/-/commit/" + CobblemonBuildDetails.GIT_COMMIT + ")");
cobblemon.add("Branch", CobblemonBuildDetails.BRANCH); cobblemon.add("Branch", CobblemonBuildDetails.BRANCH);
cobblemon.add("Timestamp", CobblemonBuildDetails.TIMESTAMP);
cobblemon.addStackTrace(builder); cobblemon.addStackTrace(builder);
builder.append("\n\n"); builder.append("\n\n");
@@ -10,7 +10,6 @@ object CobblemonBuildDetails {
const val GIT_COMMIT = "{{ gitCommit | default("Not Specified") }}" const val GIT_COMMIT = "{{ gitCommit | default("Not Specified") }}"
const val BRANCH = "{{ branch | default("Not Specified") }}" const val BRANCH = "{{ branch | default("Not Specified") }}"
const val TIMESTAMP = "{{ timestamp }}"
fun smallCommitHash(): String { fun smallCommitHash(): String {
return this.GIT_COMMIT.substring(0, 7) return this.GIT_COMMIT.substring(0, 7)
@@ -179,7 +179,6 @@ object Cobblemon {
if(CobblemonBuildDetails.SNAPSHOT) { if(CobblemonBuildDetails.SNAPSHOT) {
this.LOGGER.info(" - Git Commit: ${smallCommitHash()} (https://gitlab.com/cable-mc/cobblemon/-/commit/${CobblemonBuildDetails.GIT_COMMIT})") this.LOGGER.info(" - Git Commit: ${smallCommitHash()} (https://gitlab.com/cable-mc/cobblemon/-/commit/${CobblemonBuildDetails.GIT_COMMIT})")
this.LOGGER.info(" - Branch: ${CobblemonBuildDetails.BRANCH}") this.LOGGER.info(" - Branch: ${CobblemonBuildDetails.BRANCH}")
this.LOGGER.info(" - Timestamp: ${CobblemonBuildDetails.TIMESTAMP}")
} }
implementation.registerPermissionValidator() implementation.registerPermissionValidator()
@@ -65,12 +65,6 @@ object CobblemonInfoCommand {
.append(this.SPACE) .append(this.SPACE)
.append(CobblemonBuildDetails.BRANCH) .append(CobblemonBuildDetails.BRANCH)
message.append(this.NEW_LINE)
.append(this.INDENT)
.append(Text.literal("Timestamp:").styled { it.withColor(Formatting.GRAY) })
.append(this.SPACE)
.append(CobblemonBuildDetails.TIMESTAMP)
ctx.source.sendMessage(message) ctx.source.sendMessage(message)
0 0
} }
+13 -15
View File
@@ -10,7 +10,7 @@
configurations.all { configurations.all {
resolutionStrategy { resolutionStrategy {
force(libs.fabricLoader) force(libs.fabric.loader)
} }
} }
@@ -52,22 +52,20 @@ dependencies {
isTransitive = false isTransitive = false
} }
modImplementation(libs.fabricLoader) modImplementation(libs.fabric.loader)
modApi(libs.fabricApi) modApi(libs.fabric.api)
modApi(libs.fabricKotlin) modApi(libs.bundles.fabric)
modApi(libs.fabricPermissionsApi)
modCompileOnly(libs.lambDynamicLights) { isTransitive = false } modCompileOnly(libs.bundles.fabric.integrations.compileOnly) {
modRuntimeOnly(libs.jeiFabric) isTransitive = false
modCompileOnly(libs.adornFabric) }
modRuntimeOnly(libs.jei.fabric)
// modImplementation(libs.flywheelFabric) // modImplementation(libs.flywheelFabric)
// include(libs.flywheelFabric) // include(libs.flywheelFabric)
listOf( listOf(
libs.stdlib, libs.bundles.kotlin,
libs.reflect, libs.bundles.fabric.kotlin.deps,
libs.jetbrainsAnnotations,
libs.serializationCore,
libs.serializationJson,
libs.graal, libs.graal,
libs.molang libs.molang
).forEach { ).forEach {
@@ -90,13 +88,13 @@ tasks {
processResources { processResources {
dependsOn(copyAccessWidener) dependsOn(copyAccessWidener)
inputs.property("version", rootProject.version) inputs.property("version", rootProject.version)
inputs.property("fabric_loader_version", libs.fabricLoader.get().version) inputs.property("fabric_loader_version", libs.fabric.loader.get().version)
inputs.property("minecraft_version", rootProject.property("mc_version").toString()) inputs.property("minecraft_version", rootProject.property("mc_version").toString())
filesMatching("fabric.mod.json") { filesMatching("fabric.mod.json") {
expand( expand(
"version" to rootProject.version, "version" to rootProject.version,
"fabric_loader_version" to libs.fabricLoader.get().version, "fabric_loader_version" to libs.fabric.loader.get().version,
"minecraft_version" to rootProject.property("mc_version").toString() "minecraft_version" to rootProject.property("mc_version").toString()
) )
} }
+2 -2
View File
@@ -42,12 +42,12 @@ dependencies {
//shadowCommon group: 'commons-io', name: 'commons-io', version: '2.6' //shadowCommon group: 'commons-io', name: 'commons-io', version: '2.6'
// modImplementation(libs.flywheelForge) // modImplementation(libs.flywheelForge)
// include(libs.flywheelForge) // include(libs.flywheelForge)
modCompileOnly(libs.adornForge) modCompileOnly(libs.adorn.forge)
implementation(project(":common", configuration = "namedElements")) { implementation(project(":common", configuration = "namedElements")) {
isTransitive = false isTransitive = false
} }
implementation(libs.kotlinForForge) implementation(libs.kotlin.forge)
"developmentForge"(project(":common", configuration = "namedElements")) { "developmentForge"(project(":common", configuration = "namedElements")) {
isTransitive = false isTransitive = false
} }
+3
View File
@@ -3,6 +3,9 @@
org.gradle.jvmargs=-Xmx8G org.gradle.jvmargs=-Xmx8G
org.gradle.daemon=false org.gradle.daemon=false
org.gradle.parallel=true org.gradle.parallel=true
org.gradle.caching=true
group=com.cobblemon.mod
# API # API
mc_version = 1.20.1 mc_version = 1.20.1
@@ -11,10 +11,12 @@ repositories {
dependencies { dependencies {
implementation(libs.kotlin) implementation(libs.kotlin)
implementation(libs.indra.common)
implementation(libs.licenser) implementation(libs.licenser)
implementation(libs.shadow) implementation(libs.shadow)
implementation(libs.loom) implementation(libs.loom)
implementation(libs.architecturyPlugin) implementation(libs.architectury)
implementation(libs.blossom) implementation(libs.blossom)
implementation(libs.ideaExt) implementation(libs.ideaExt)
+20
View File
@@ -0,0 +1,20 @@
rootProject.name = "build-logic"
pluginManagement {
repositories {
gradlePluginPortal()
mavenCentral()
maven("https://maven.architectury.dev/")
maven("https://maven.fabricmc.net/")
maven("https://maven.minecraftforge.net/")
maven("https://repo.papermc.io/repository/maven-public/")
}
}
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("../libs.versions.toml"))
}
}
}
@@ -9,18 +9,31 @@
*/ */
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import utilities.ACCESS_WIDENER
val accessWidenerFile = "src/main/resources/cobblemon-common.accesswidener"
plugins { plugins {
java id("java")
`java-library` id("java-library")
id("net.kyori.indra")
id("net.kyori.indra.git")
id("org.cadixdev.licenser") id("org.cadixdev.licenser")
id("dev.architectury.loom") id("dev.architectury.loom")
id("architectury-plugin") id("architectury-plugin")
kotlin("jvm") kotlin("jvm")
} }
group = rootProject.group
version = rootProject.version
description = rootProject.description
indra {
javaVersions {
minimumToolchain(17)
target(17)
}
}
repositories { repositories {
mavenCentral() mavenCentral()
//JEI //JEI
@@ -32,11 +45,6 @@ license {
header(rootProject.file("HEADER")) header(rootProject.file("HEADER"))
} }
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
architectury { architectury {
minecraft = project.property("mc_version").toString() minecraft = project.property("mc_version").toString()
} }
@@ -57,8 +65,7 @@ dependencies {
tasks { tasks {
withType<JavaCompile> { withType<JavaCompile> {
options.encoding = "UTF-8" options.compilerArgs.add("-Xlint:-processing,-classfile,-serial")
options.release.set(17)
} }
withType<KotlinCompile> { withType<KotlinCompile> {
@@ -1,8 +1,13 @@
import utilities.VersionType
import utilities.writeVersion
plugins { plugins {
id("cobblemon.base-conventions") id("cobblemon.base-conventions")
id("com.github.johnrengelman.shadow") id("com.github.johnrengelman.shadow")
} }
writeVersion(type = VersionType.FULL)
val bundle: Configuration by configurations.creating { val bundle: Configuration by configurations.creating {
isCanBeConsumed = false isCanBeConsumed = false
isCanBeResolved = true isCanBeResolved = true
@@ -39,4 +44,16 @@ tasks {
archiveVersion.set("${rootProject.version}") archiveVersion.set("${rootProject.version}")
} }
val copyJar by registering(CopyFile::class) {
val productionJar = tasks.remapJar.flatMap { it.archiveFile }
fileToCopy = productionJar
destination = productionJar.flatMap {
rootProject.layout.buildDirectory.file("libs/${it.asFile.name}")
}
}
assemble {
dependsOn(copyJar)
}
} }
@@ -1,9 +1,9 @@
import extensions.VersionType import utilities.VersionType
import extensions.writeVersion import utilities.writeVersion
plugins { plugins {
java id("java")
`java-library` id("java-library")
id("maven-publish") id("maven-publish")
id("dev.architectury.loom") id("dev.architectury.loom")
} }
@@ -0,0 +1,9 @@
plugins {
base
}
tasks {
withType<Test> {
useJUnitPlatform()
}
}
@@ -0,0 +1,21 @@
import org.gradle.api.DefaultTask
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.OutputFile
import org.gradle.api.tasks.TaskAction
import org.gradle.work.DisableCachingByDefault
@DisableCachingByDefault(because = "Not worth caching")
abstract class CopyFile : DefaultTask() {
@get:InputFile
abstract val fileToCopy: RegularFileProperty
@get:OutputFile
abstract val destination: RegularFileProperty
@TaskAction
private fun copyFile() {
destination.get().asFile.parentFile.mkdirs()
fileToCopy.get().asFile.copyTo(destination.get().asFile, overwrite = true)
}
}
@@ -1,4 +1,4 @@
package extensions package utilities
import org.gradle.api.Project import org.gradle.api.Project
@@ -1,2 +1,3 @@
package utilities
const val ACCESS_WIDENER = "src/main/resources/cobblemon-common.accesswidener" const val ACCESS_WIDENER = "src/main/resources/cobblemon-common.accesswidener"
+101
View File
@@ -0,0 +1,101 @@
[versions]
# Kotlin
kotlin = "1.8.20"
annotations = "23.0.0"
serialization = "1.5.0"
# Plugins
indra = "3.1.3"
licenser = "0.6.1"
shadow = "8.1.1"
blossom = "2.1.0"
idea-ext = "1.1.7"
# Loom
loom = "1.6-SNAPSHOT"
architectury-plugin = "3.4-SNAPSHOT"
# Common
molang = "1.1.11"
graal = "22.3.0"
icu4j = "71.1"
jei-api = "15.2.0.25"
# Fabric
fabric-loader = "0.15.10"
fabric-api = "0.89.0+1.20.1"
fabric-kotlin = "1.9.3+kotlin.1.8.20"
fabric-permissions-api = "0.2-SNAPSHOT"
lambDynamicLights = "2.3.2+1.20.1"
# Forge
forge = "1.20.1-47.1.0"
kotlin-for-forge = "4.10.0"
flywheel = "0.6.10-7"
# Data Storage
mongo = "4.10.2"
# Testing
junit = "5.9.0"
mockito = "5.2.0"
mockk = "1.12.1"
classgraph = "4.8.153"
[libraries]
# General Buildscript Plugins
indra-common = { group = "net.kyori", name = "indra-common", version.ref = "indra" }
kotlin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
loom = { group = "dev.architectury", name = "architectury-loom", version.ref = "loom" }
architectury = { group = "architectury-plugin", name = "architectury-plugin.gradle.plugin", version.ref = "architectury-plugin" }
shadow = { group = "com.github.johnrengelman", name = "shadow", version.ref = "shadow" }
blossom = { group = "net.kyori", name = "blossom", version.ref = "blossom" }
ideaExt = { group = "org.jetbrains.gradle.plugin.idea-ext", name = "org.jetbrains.gradle.plugin.idea-ext.gradle.plugin", version.ref = "idea-ext"}
licenser = { group = "gradle.plugin.org.cadixdev.gradle", name = "licenser", version.ref = "licenser" }
# Kotlin
kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" }
kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin" }
jetbrains-annotations = { group = "org.jetbrains", name = "annotations", version.ref = "annotations" }
serialization-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-core-jvm", version.ref = "serialization" }
serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json-jvm", version.ref = "serialization" }
# Common
jei-api = { group = "local.mezz.jei", name = "common-api", version.ref = "jei-api"}
molang = { group = "local.com.bedrockk", name = "molang", version.ref = "molang" }
graal = { group = "org.graalvm.js", name = "js", version.ref = "graal" }
icu4j = { group = "com.ibm.icu", name = "icu4j", version.ref = "icu4j" }
# Fabric
fabric-loader = { group = "net.fabricmc", name = "fabric-loader", version.ref = "fabric-loader" }
fabric-api = { group = "net.fabricmc.fabric-api", name = "fabric-api", version.ref = "fabric-api" }
fabric-kotlin = { group = "net.fabricmc", name = "fabric-language-kotlin", version.ref = "fabric-kotlin" }
fabric-permissions = { group = "me.lucko", name = "fabric-permissions-api", version.ref = "fabric-permissions-api" }
adorn-fabric = { group = "maven.modrinth", name = "adorn", version = "5.0.0-fabric"}
lambDynamicLights = { group = "maven.modrinth", name = "lambdynamiclights", version.ref = "lambDynamicLights"}
jei-fabric = { group = "mezz.jei", name = "jei-1.20.1-fabric", version.ref = "jei-api"}
# Forge
forge = { group = "net.minecraftforge", name = "forge", version.ref = "forge" }
kotlin-forge = { group = "thedarkcolour", name = "kotlinforforge", version.ref = "kotlin-for-forge" }
adorn-forge = { group = "maven.modrinth", name = "adorn", version = "5.0.0-forge"}
# Data Storage
mongo-driver-core = { group = "org.mongodb", name = "mongodb-driver-core", version.ref = "mongo" }
mongo-driver-sync = { group = "org.mongodb", name = "mongodb-driver-sync", version.ref = "mongo" }
# Testing
junit-fabric = { group = "net.fabricmc", name = "fabric-loader-junit", version.ref = "fabric-loader" }
junit-params = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "junit" }
mockito-core = { group = "org.mockito", name = "mockito-core", version.ref = "mockito" }
mock-kotlin = { group = "io.mockk", name = "mockk", version.ref = "mockk" }
classgraph = { group = "io.github.classgraph", name = "classgraph", version.ref = "classgraph" }
[bundles]
kotlin = [ "kotlin-stdlib", "kotlin-reflect" ]
fabric = [ "fabric-kotlin", "fabric-permissions" ]
fabric-kotlin-deps = [ "jetbrains-annotations", "serialization-core", "serialization-json" ]
fabric-integrations-compileOnly = [ "adorn-fabric", "lambDynamicLights" ]
fabric-integrations-runtimeOnly = [ "jei-fabric" ]
mongo = [ "mongo-driver-core", "mongo-driver-sync" ]
unitTesting = [ "junit-fabric", "junit-params", "mockito-core", "mock-kotlin", "classgraph" ]
-205
View File
@@ -1,205 +0,0 @@
versions:
# jetbrains
kotlin: 1.8.20
coroutines: 1.6.4
annotations: 23.0.0
serialization: 1.5.0
# other
licenser: 0.6.1
shadow: 7.1.2
blossom: 2.1.0
idea-ext: 1.1.7
# fabric/remap
loom: 1.1-SNAPSHOT
fabric-loader: 0.14.21
fabric-api: 0.89.0+1.20.1
fabric-kotlin: 1.9.3+kotlin.1.8.20
architectury-plugin: 3.4-SNAPSHOT
flywheelFabric: 0.6.9-1
fabric-permissions-api: 0.2-SNAPSHOT
adorn-fabric: 5.0.0-fabric
lamb-dynamic-lights: 2.3.2+1.20.1
# forge
forge: 1.20.1-47.1.0
kotlinForForge: 4.10.0
flywheelForge: 0.6.10-7
adorn-forge: 5.0.0-forge
# common
graal: 22.3.0
molang: 1.1.11
#make sure to keep this the same as the one bundled in graal (can see it using ./gradlew commmon:dependencies
icu4j: 71.1
# test
junit: 5.9.0
mockito: 5.2.0
mockk: 1.12.1
classgraph: 4.8.153
jei-api: 15.2.0.25
dependencies:
# build-logic
kotlin:
group: org.jetbrains.kotlin
name: kotlin-gradle-plugin
version: { ref: kotlin }
licenser:
group: gradle.plugin.org.cadixdev.gradle
name: licenser
version: { ref: licenser }
shadow:
group: gradle.plugin.com.github.johnrengelman
name: shadow
version: { ref: shadow }
blossom:
group: net.kyori
name: blossom
version: { ref: blossom }
ideaExt:
group: org.jetbrains.gradle.plugin.idea-ext
name: org.jetbrains.gradle.plugin.idea-ext.gradle.plugin
version: { ref: idea-ext }
loom:
group: dev.architectury
name: architectury-loom
version: { ref: loom }
architecturyPlugin:
group: architectury-plugin
name: architectury-plugin.gradle.plugin
version: { ref: architectury-plugin }
# Jetbrains // Core Stuff
stdlib:
group: org.jetbrains.kotlin
name: kotlin-stdlib-jdk8
version: { ref: kotlin }
reflect:
group: org.jetbrains.kotlin
name: kotlin-reflect
version: { ref: kotlin }
jetbrainsAnnotations:
group: org.jetbrains
name: annotations
version: { ref: annotations }
serializationCore:
group: org.jetbrains.kotlinx
name: kotlinx-serialization-core-jvm
version: { ref: serialization }
serializationJson:
group: org.jetbrains.kotlinx
name: kotlinx-serialization-json-jvm
version: { ref: serialization }
graal:
group: org.graalvm.js
name: js
version: { ref: graal }
#This is a graal dep but has to be explicitly marked as included as present on the server
icu4j:
group: com.ibm.icu
name: icu4j
version: { ref: icu4j }
molang:
group: local.com.bedrockk
name: molang
version: { ref: molang }
fabricLoader:
group: net.fabricmc
name: fabric-loader
version: { ref: fabric-loader }
jeiApi:
group: local.mezz.jei
name: common-api
version: { ref: jei-api }
# fabric
fabricApi:
group: net.fabricmc.fabric-api
name: fabric-api
version: { ref: fabric-api }
fabricKotlin:
group: net.fabricmc
name: fabric-language-kotlin
version: { ref: fabric-kotlin }
fabricPermissionsApi:
group: me.lucko
name: fabric-permissions-api
version: { ref: fabric-permissions-api }
jeiFabric:
group: mezz.jei
name: jei-1.20.1-fabric
version: { ref: jei-api }
flywheelFabric:
group: com.jozufozu.flywheel
name: flywheel-fabric-1.20.1
version: { ref: flywheelFabric }
adornFabric:
group: maven.modrinth
name: adorn
version: { ref: adorn-fabric }
lambDynamicLights:
group: maven.modrinth
name: lambdynamiclights
version: { ref: lamb-dynamic-lights }
# forge
forge:
group: net.minecraftforge
name: forge
version: { ref: forge }
kotlinForForge:
group: thedarkcolour
name: kotlinforforge
version: { ref: kotlinForForge }
jeiForge:
group: mezz.jei
name: jei-1.20.1-forge
version: { ref: jei-api }
flywheelForge:
group: com.jozufozu.flywheel
name: flywheel-forge-1.20.1
version: { ref: flywheelForge }
adornForge:
group: maven.modrinth
name: adorn
version: { ref: adorn-forge }
# datastore
mongoDriverCore:
group: org.mongodb
name: mongodb-driver-core
version: 4.10.2
mongoDriverSync:
group: org.mongodb
name: mongodb-driver-sync
version: 4.10.2
# test
fabricJunit:
group: net.fabricmc
name: fabric-loader-junit
version: { ref: fabric-loader }
junitParams:
group: org.junit.jupiter
name: junit-jupiter-params
version: { ref: junit }
mockito:
group: org.mockito
name: mockito-core
version: { ref: mockito }
mockk:
group: io.mockk
name: mockk
version: { ref: mockk }
classgraph:
group: io.github.classgraph
name: classgraph
version: { ref: classgraph }
Binary file not shown.
+3 -1
View File
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
Vendored
+33 -18
View File
@@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# #
# Copyright © 2015-2021 the original authors. # Copyright © 2015-2021 the original authors.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@@ -32,10 +32,10 @@
# Busybox and similar reduced shells will NOT work, because this script # Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features: # requires all of these POSIX shell features:
# * functions; # * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», # * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»; # «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»; # * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit». # * various built-in commands including «command», «set», and «ulimit».
# #
# Important for patching: # Important for patching:
# #
@@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop. # Darwin, MinGW, and NonStop.
# #
# (3) This script is generated from the Groovy template # (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project. # within the Gradle project.
# #
# You can find Gradle at https://github.com/gradle/gradle/. # You can find Gradle at https://github.com/gradle/gradle/.
@@ -80,13 +80,11 @@ do
esac esac
done done
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # This is normally unused
# shellcheck disable=SC2034
APP_NAME="Gradle"
APP_BASE_NAME=${0##*/} APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value. # Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum MAX_FD=maximum
@@ -133,22 +131,29 @@ location of your Java installation."
fi fi
else else
JAVACMD=java JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the Please set the JAVA_HOME variable in your environment to match the
location of your Java installation." location of your Java installation."
fi
fi fi
# Increase the maximum file descriptors if we can. # Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #( case $MAX_FD in #(
max*) max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) || MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit" warn "Could not query maximum file descriptor limit"
esac esac
case $MAX_FD in #( case $MAX_FD in #(
'' | soft) :;; #( '' | soft) :;; #(
*) *)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" || ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD" warn "Could not set maximum file descriptor limit to $MAX_FD"
esac esac
@@ -193,11 +198,15 @@ if "$cygwin" || "$msys" ; then
done done
fi fi
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
# shell script including quotes and variable substitutions, so put them in DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded. # Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \ set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \ "-Dorg.gradle.appname=$APP_BASE_NAME" \
@@ -205,6 +214,12 @@ set -- \
org.gradle.wrapper.GradleWrapperMain \ org.gradle.wrapper.GradleWrapperMain \
"$@" "$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args. # Use "xargs" to parse quoted args.
# #
# With -n1 it outputs one arg per line, with the quotes and backslashes removed. # With -n1 it outputs one arg per line, with the quotes and backslashes removed.
Vendored
+92 -89
View File
@@ -1,89 +1,92 @@
@rem @rem
@rem Copyright 2015 the original author or authors. @rem Copyright 2015 the original author or authors.
@rem @rem
@rem Licensed under the Apache License, Version 2.0 (the "License"); @rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License. @rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at @rem You may obtain a copy of the License at
@rem @rem
@rem https://www.apache.org/licenses/LICENSE-2.0 @rem https://www.apache.org/licenses/LICENSE-2.0
@rem @rem
@rem Unless required by applicable law or agreed to in writing, software @rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS, @rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and @rem See the License for the specific language governing permissions and
@rem limitations under the License. @rem limitations under the License.
@rem @rem
@if "%DEBUG%" == "" @echo off @if "%DEBUG%"=="" @echo off
@rem ########################################################################## @rem ##########################################################################
@rem @rem
@rem Gradle startup script for Windows @rem Gradle startup script for Windows
@rem @rem
@rem ########################################################################## @rem ##########################################################################
@rem Set local scope for the variables with windows NT shell @rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0 set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=. if "%DIRNAME%"=="" set DIRNAME=.
set APP_BASE_NAME=%~n0 @rem This is normally unused
set APP_HOME=%DIRNAME% set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi @rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome @rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1 set JAVA_EXE=java.exe
if "%ERRORLEVEL%" == "0" goto execute %JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. echo. 1>&2
echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the echo. 1>&2
echo location of your Java installation. echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=% :findJavaFromJavaHome
set JAVA_EXE=%JAVA_HOME%/bin/java.exe set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% echo. 1>&2
echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo Please set the JAVA_HOME variable in your environment to match the echo. 1>&2
echo location of your Java installation. echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
goto fail
:execute
@rem Setup the command line :execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* @rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell :end
if "%ERRORLEVEL%"=="0" goto mainEnd @rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of :fail
rem the _cmd.exe /c_ return code! rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 rem the _cmd.exe /c_ return code!
exit /b 1 set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
:mainEnd if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
if "%OS%"=="Windows_NT" endlocal exit /b %EXIT_CODE%
:omega :mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
+7 -6
View File
@@ -1,18 +1,19 @@
rootProject.name = "cobblemon" enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
pluginManagement { pluginManagement {
repositories { repositories {
gradlePluginPortal()
mavenCentral()
maven("https://maven.fabricmc.net/") maven("https://maven.fabricmc.net/")
maven("https://maven.architectury.dev/") maven("https://maven.architectury.dev/")
maven("https://maven.minecraftforge.net/") maven("https://maven.minecraftforge.net/")
gradlePluginPortal()
} }
includeBuild("build-logic")
includeBuild("gradle/build-logic")
} }
plugins { rootProject.name = "cobblemon"
id("ca.stellardrift.polyglot-version-catalogs") version "5.0.1"
}
listOf( listOf(
"common", "common",