如何在Minecraft Forge(Forge Gradle 3)中添加带有mod的另一个sourceSet?

问题描述 投票:0回答:1

我有一个在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的版本。

gradle minecraft minecraft-forge
1个回答
0
投票

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替换mainmodidtestmodidmainmodid应该作为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文档)。>>

© www.soinside.com 2019 - 2024. All rights reserved.