common 디렉토리에 로더 비종속 ChatAnswerCore 를 두고, fabric/ 과 neoforge/ 서브프로젝트가 각자 진입점만 갖도록 분리. 두 결과물을 하나의 jar 로 묶기 위해 Fabric 측 common 클래스를 Shadow 의 relocate 로 kr.tkrmagid.chatanswer.fabric.core 패키지로 옮긴다 (Fabric 은 intermediary, NeoForge 는 Mojang 매핑이라 같은 클래스 경로에 그대로 두면 충돌). 루트의 mergedJar 태스크가 :fabric:relocatedJar 와 :neoforge:jar 를 합쳐서 build/libs/chat_answer-<version>-all.jar 생성. 산출물: 9.9KB 통합 jar 가 Fabric / NeoForge 양쪽에서 작동.
42 lines
992 B
Groovy
42 lines
992 B
Groovy
plugins {
|
|
id 'net.neoforged.moddev' version '2.0.97'
|
|
}
|
|
|
|
archivesBaseName = "${project.mod_id}-neoforge"
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDirs += "${rootDir}/common/src/main/java"
|
|
}
|
|
}
|
|
}
|
|
|
|
neoForge {
|
|
version = project.neoforge_version
|
|
}
|
|
|
|
processResources {
|
|
inputs.property "version", project.version
|
|
inputs.property "mod_id", project.mod_id
|
|
inputs.property "mod_name", project.mod_name
|
|
inputs.property "minecraft_version", project.minecraft_version
|
|
inputs.property "neoforge_version", project.neoforge_version
|
|
|
|
filesMatching("META-INF/neoforge.mods.toml") {
|
|
expand(
|
|
"version": project.version,
|
|
"mod_id": project.mod_id,
|
|
"mod_name": project.mod_name,
|
|
"minecraft_version": project.minecraft_version,
|
|
"neoforge_version": project.neoforge_version
|
|
)
|
|
}
|
|
}
|
|
|
|
jar {
|
|
from(rootProject.file("LICENSE")) {
|
|
rename { "${it}_${project.mod_id}" }
|
|
}
|
|
}
|