我有一个在Forge开发环境中制作的库,其中一个在main
源集中,其中包含库代码; testmod
(或任何其他名称)源集中的另一个,包含需要作为Forge mod加载的测试代码。
简单添加
sourceSets {
testmod {
compileClasspath += sourceSets.main.output
runtimeClasspath += sourceSets.main.output
java {
srcDir "src/testmod/java"
}
resources {
srcDir "src/testmod/resources"
}
}
}
进入我的build.gradle
,Forge不扫描源集,因此不加载我的mod。如何让Forge加载我的mod?
请注意,我的mod在Forge 1.14.4中,并且这应适用于所有带有Forge Gradle 3的版本。
Forge通过minecraft
/ run
部分中声明的mod加载mod。您将需要添加以下行,以使Forge扫描mod的testmod
来源集。
minecraft {
// ...
runs {
client {
// ...
mods {
mainmodid {
source sourceSets.main
}
testmodid {
source sourceSets.testmod
}
}
}
server {
// ...
mods {
mainmodid {
source sourceSets.main
}
testmodid {
source sourceSets.testmod
}
}
}
}
}
用您自己的modid替换mainmodid
和testmodid
。 mainmodid
应该作为examplemod
包含在MDK中。
尽管这确实使Forge加载了您的类,但是它仍然无法正确找到您的mods.toml
(取决于ForgeGradle版本)。如果您遇到加载错误,说在mods.toml中未找到测试模块,也添加以下代码段
processResources {
from(sourceSets.testmod.resources.srcDirs) {
include "META_INF/mods.toml"
}
}
也仅添加源集testmod
不会自动将Forge和Minecraft添加为依赖项。您还将有添加
configurations {
testmodCompile.extendsFrom(compile)
testmodCompileOnly.extendsFrom(compileOnly)
testmodRuntimeOnly.extendsFrom(runtimeOnly)
}
使Gradle添加Forge和Minecraft(testmod
中的testmodCompile
是源集名称,请参阅Gradle文档)。>>