HMCL/build.gradle.kts
2024-02-14 13:42:23 +08:00

108 lines
2.5 KiB
Plaintext

plugins {
id("checkstyle")
}
group = "org.jackhuang"
version = "3.0"
subprojects {
apply {
plugin("java")
plugin("idea")
plugin("maven-publish")
plugin("checkstyle")
}
repositories {
flatDir {
name = "libs"
dirs = setOf(rootProject.file("lib"))
}
mavenCentral()
maven(url = "https://jitpack.io")
maven(url = "https://libraries.minecraft.net")
}
tasks.withType<JavaCompile> {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
options.encoding = "UTF-8"
}
configure<CheckstyleExtension> {
sourceSets = setOf()
}
dependencies {
"testImplementation"("org.junit.jupiter:junit-jupiter:5.10.2")
}
tasks.withType<Test> {
useJUnitPlatform()
testLogging.showStandardStreams = true
}
configure<PublishingExtension> {
publications {
create<MavenPublication>("maven") {
from(components["java"])
}
}
repositories {
mavenLocal()
}
}
}
tasks.create("checkTranslations") {
doLast {
val hmclLangDir = file("HMCL/src/main/resources/assets/lang")
val en = java.util.Properties().apply {
hmclLangDir.resolve("I18N.properties").bufferedReader().use { load(it) }
}
val zh = java.util.Properties().apply {
hmclLangDir.resolve("I18N_zh.properties").bufferedReader().use { load(it) }
}
val zh_CN = java.util.Properties().apply {
hmclLangDir.resolve("I18N_zh_CN.properties").bufferedReader().use { load(it) }
}
var success = true
zh_CN.forEach {
if (!en.containsKey(it.key)) {
project.logger.warn("I18N.properties missing key '${it.key}'")
success = false
}
}
zh_CN.forEach {
if (!zh.containsKey(it.key)) {
project.logger.warn("I18N_zh.properties missing key '${it.key}'")
success = false
}
}
zh_CN.forEach {
if (it.value.toString().contains("帐户")) {
project.logger.warn("The misspelled '帐户' in '${it.key}' should be replaced by '账户'")
success = false
}
}
if (!success) {
throw GradleException("Part of the translation is missing")
}
}
}
apply {
from("javafx.gradle.kts")
}
defaultTasks("clean", "build")