• Forge论坛

导航页

  • 主页
  • 向这篇文档做出贡献
  • 入门
    • 概述
  • 配置选项
    • 概述
    • 运行配置
      • 模组配置
    • 进阶主题
  • 依赖
    • 概述
    • Jar-in-Jar
  • 移植到当前版本

运行配置

运行配置定义了游戏实例的运行方式。这包括参数、工作目录、任务名称等。运行配置在minecraft.runs块中定义。虽然默认情况下没有配置任何运行,但Forge确实提供了client、server、data或gameTestServer的配置。

minecraft {
    // ...
    runs {
        // 在此处配置运行
    }
}

可以使用闭包添加类似于任何NamedDomainObjectContainer的运行配置。

// 在minecraft块内部
runs {
    // 创建或配置名为'client'的运行配置
    client {
        // 配置运行
    }
}

以下配置属性可用:

// 在runs块内部
client {
    // Gradle运行任务的名称,
    // 默认为'runX',其中X是容器名称
    taskName 'runThing'

    // 设置程序启动的入口点
    // Forge将userdev main设置为'cpw.mods.bootstraplauncher.BootstrapLauncher'
    main 'com.example.Main'

    // 设置该配置的工作目录
    // 默认为'./run'
    workingDirectory 'run'

    // 为IntelliJ IDEA设置要为其运行配置的模块的名称
    // 默认为'<project_name>.main'
    ideaModule 'example.main'

    // 设置运行配置应添加到的文件夹的名称
    // 默认为项目名称
    folderName 'example'

    // 设置这是否应该运行一个Minecraft客户端
    // 若未指定,将进行以下检查
    // - 是否存在包含'client'的环境变量'thing'
    // - 配置名称是否存在'client'
    // - main是否设置为'mcp.client.Start'
    // - main是否设置为'net.minecraft.client.main.Main'
    client true

    // 设置该配置应继承自的父级
    parent runs.example

    // 设置该配置的子级
    children runs.child

    // 合并此配置并指定是否覆盖现有属性
    merge runs.server, true

    // 如果不为false,则会将父级的参数与此配置合并
    inheritArgs false

    // 如果不为false,则会将父级的JVM参数与此配置合并
    inheritJvmArgs false

    // 将一个源集(sourceset)添加到classpath
    // 若未指定,则添加sourceSet.main
    source sourceSets.api

    // 为该运行设置一个环境变量
    // 值将作为一个文件(file)或一个字符串(string)被解释
    environment 'envKey', 'value'

    // 设置一个系统属性
    // 值将作为一个文件(file)或一个字符串(string)被解释
    property 'propKey', 'value'

    // 设置将传递给应用的参数
    // 可用'args'指定多个
    arg 'hello'

    // 设置一个JVM参数
    // 可用'jvmArgs'指定多个
    jvmArg '-Xmx2G'

    // 设置一个令牌(token)
    // 目前,下列令牌被使用:
    // - runtime_classpath
    // - minecraft_classpath
    token 'tokenKey', 'value'

    // 设置一个被惰性初始化的令牌
    // 通常应替代'token'使用,例如当令牌解析Gradle配置时
    lazyToken('lazyTokenKey') {
      'value'
    }

    // 如果为true,则编译所有项目,而不是当前任务的项目
    // 这仅由IntelliJ IDEA使用
    buildAllProjects false
}

提示

你可以在MinecraftForge构建脚本中看到所有配置的userdev属性的列表。

模组配置

当前环境中的模组可以使用运行配置中的mods块添加。Mod块也是NamedDomainObjectContainer。

// 在runs块中
client {
    // ...

    mods {
        other_mod {
            // ...
        }

        // 配置'example'模组
        example {
            // 将一个源集添加到模组的源
            source sourceSets.main

            // 合并此配置并指定是否覆盖现有属性
            merge mods.other_mod, true
        }
    }
}
Built with MkDocs using a custom theme. Hosted by Read the Docs.
Enable Dark Theme