User Tools

Site Tools


zh_cn:tutorial:minotaur

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
zh_cn:tutorial:minotaur [2021/07/24 17:24] breakicezh_cn:tutorial:minotaur [2023/06/21 06:19] (current) – [让我们更加深入一些!] solidblock
Line 10: Line 10:
 <code groovy> <code groovy>
 plugins { plugins {
-    id "com.modrinth.minotaur" version "1.2.1"+    id "com.modrinth.minotaur" version "2.+"
 } }
 </code> </code>
Line 21: Line 21:
 import com.modrinth.minotaur.TaskModrinthUpload import com.modrinth.minotaur.TaskModrinthUpload
  
-task publishModrinth (type: TaskModrinthUpload) +modrinth 
-    token = 'mySecretToken' // 如果你想通过 Github 发布你的模组的话,请在这里使用环境配置! +    token = 'mySecretToken' // 这里使用环境变量默认为 `$MODRINTH_TOKEN`。 
-    projectId = 'modrinthModID' // 你的 modrinth 项目的 ID,错误的话 minotaur 会起作用。 +    projectId = 'AABBCCDD' // 你的 Modrinth 项目的 ID。Slug 。 
-    versionNumber = '1.0.0' // 上传模组版本。 +    versionNumber = '1.0.0' // 模组版本,最好要符合 SemVer如果未指定,则会使用 `version` 声明 
-    uploadFile = remapJar // 这链接到一个构建你的 mod jar的任务,并将 "uploadFile "设置为 mod jar。 +    versionName = 'My awesome release' // 版本标题。如果未指定,则使用 versionNumber 
-    addGameVersion('1.16.2'// 任何可行的 minecraft 版本 +    uploadFile = remapJar // 告诉 Minotaur 使用重映射的 jar 文件 
-    addLoader('fabric') // 可以为 fabric 或者 forge 。Modrinth 以后会支持 liteloader 和 rift 。+    gameVersions = ['1.18', '1.18.1', '1.18.2'// 版本支持游戏版本的数组 
 +    loaders = ['fabric'] // Self-explanatory. 
 +    dependencies = [ 
 +            new ModDependency('P7dR8mSH', 'required') // 创建一个必需的 Fabric API 依赖 
 +    ]
 } }
 </code> </code>
  
-从[[https://modrinth.com/dashboard/settings|这里获得]]你的 Modrinth token可以通过这个token获得权限使用 Modrinth API 通过 Minotaur 上传文件+从[[https://modrinth.com/dashboard/settings|这里获得]]你的 Modrinth 令牌可以使用此令牌与 Minotaur 一起访问 Modrinth API。
  
-现在,当你运行''gradle publishModrinth''时,你应该看到你的 mod 已经被编译并上传到 Modrinth ,像是这样:+现在,当你运行 ''gradle modrinth'' 时,你应该看到你的模组已经被编译并上传到 Modrinth ,像是这样:
  
 {{https://iili.io/KYUDq7.png}} {{https://iili.io/KYUDq7.png}}
Line 42: Line 46:
 ===== 让我们更加深入一些! ===== ===== 让我们更加深入一些! =====
  
-好了,你现在一个基本的实现。我们更加的符合实际需求,允许在任务运行的通过命令行输入值。一般情况下这些是不足以让 Gradle 完成任务我们需要搭配诸如环境变量静态数据等相似的内容。是这份手册会给学习者思考空间,因此我们不会介绍太深入。+所以,你有一个基本的实现。我们让这个实现更加动态允许运行任务时通过命令行输入值。通常情况下Gradle 任务不会这样做,环境变量或类似的静态源可用于这些值,本教程作有需要人使用:
  
 首先,我们需要创建一个 ''BufferedReader''。为什么是 ''BufferedReader'' 而不是 ''System.out.readLine()''?因为 ''System.out.readLine()'' 仅适用于命令终端,不适用于普通 IDE 的终端,例如 Eclipse、IntelliJ Idea 和 Visual Studio Code。由于 Gradle 任务最常在 IDE 中运行,因此最好使用 ''BufferedReader'',因为它支持 IDE 的终端。 首先,我们需要创建一个 ''BufferedReader''。为什么是 ''BufferedReader'' 而不是 ''System.out.readLine()''?因为 ''System.out.readLine()'' 仅适用于命令终端,不适用于普通 IDE 的终端,例如 Eclipse、IntelliJ Idea 和 Visual Studio Code。由于 Gradle 任务最常在 IDE 中运行,因此最好使用 ''BufferedReader'',因为它支持 IDE 的终端。
Line 54: Line 58:
 现在你可以通过简单的调用 ''br.readLine()'' 方法来收集用户的输入了。 现在你可以通过简单的调用 ''br.readLine()'' 方法来收集用户的输入了。
  
-让我们把这个添加到我们的任务中,然后我们还将向里面添加更多的数据,比如 markdown changelog ,并使版本名称与语义版本号不同。+现在把这个添加到我们的任务中,向里面添加更多的数据,比如 Markdown changelog ,并使版本名称与语义版本号不同。
  
 <code groovy> <code groovy>
-import com.modrinth.minotaur.TaskModrinthUpload +modrinth {
- +
-task publishModrinth (type: TaskModrinthUpload) {+
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in));     BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
-    System.out.println("Enter a Github Access Token: "); +    System.out.println("输入 Modrinth 令牌:"); 
-    token = br.readLine(); // 获取在本教程的基础部分到的GitHub访问令牌。 +    token = br.readLine(); // 输入从此教程的基础部分获取到的令牌。 
-    projectId = "" // 在输入你的modrinth mod ID。 +    projectId = "" // 在这里输入你的 Modrinth 项目 ID。 
-    System.out.println("Enter the version number:");+    System.out.println("输入 version number");
     versionNumber = br.readLine();     versionNumber = br.readLine();
-    System.out.println("Enter the version name:");+    System.out.println("输入 version name");
     versionName = br.readLine();     versionName = br.readLine();
-    uploadFile = remapJar // 这链接到一个构建你的 mod jar 文件的任务,并将 "uploadFile" 设置为 mod jar。 +    uploadFile = remapJar 
-    System.out.println("Enter the game version number: (See minotaur docs for valids)"); +    System.out.println("输入游戏版本(有效的游戏版本参见 minotaur docs):"); 
-    addGameVersion(br.readLine());+    gameVersions = [br.readLine()];
     System.out.println("Enter changelog:");     System.out.println("Enter changelog:");
     changelog = br.readLine();     changelog = br.readLine();
-    addLoader("fabric")+    loaders = ["fabric"]
 } }
 </code> </code>
  
-现在,当运行 ''gradle publishModrinth'' 时,它会要求你提供一些贴心的用户输入。见鬼,你甚至可以使用 Swing 或 JavaFX 来制作 GUI!+现在,当运行 ''gradle modrinth'' 时,它会要求你提供一些贴心的用户输入。你甚至可以使用 Swing 或 JavaFX 来制作 GUI。真是炫酷无比
  
-Minotaur 与 CurseGradle 一起使用是很常的现象。你可以将这两个任务合并在一起。在 Modrinth 完成后调用 CurseGradle 任务:+Minotaur 与 CurseGradle 一起使用是很常的现象。你可以将这两个任务合并在一起。在 Modrinth 完成后调用 CurseGradle 任务:
  
 <code groovy> <code groovy>
-task publishModrinth (type: TaskModrinthUpload) +task publishToModSites 
-    // ... Modrinth 的上传工作 +    publishToModSites.dependsOn modrinth 
-    curseforge<id> // 开始执行 cursegradle 任务。用你在 cursegradle 配置中设置的 ID 替换 id。+    publishToModSites.dependsOn curseforge
 } }
 </code> </code>
  
 +===== 将 Minotaur 由 1.x 更新到 2.x =====
 +
 +Minotaur 2.x 加入了一些大改,改变了你的构建脚本的格式。
 +首先,Minotaur 不是注册自己的 ''publishModrinth'' 任务,而是自动创建 ''modrinth'' 任务。你可以将 ''task publishModrinth(type: TaskModrinthUpload) {'' 这一行直接替换成 ''modrinth {''
 +
 +要指明支持的 Minecraft 版本和模组加载器,必须使用 ''gameVersions'' 和 ''loaders'' 数组。这些的语法都非常清楚。
 +
 +不再使用 ''releaseType'',而应该使用 ''vevrsionType''。这个在 v1.2.0 中自动改变了,但是很少的构建脚本从 v1.1.0 进行了迁移。
 +
 +最后,依赖也是数组,其需要 ''ModDependency'' 或 ''VersionDependency''(可能需要从 ''com.modrinth.minotaur.dependencies'' 包)中导入。第一个参数是项目或者版本的 ID(字符串),第二个参数是依赖的类型:''required''、''optional'' 或 ''unsupported''
zh_cn/tutorial/minotaur.1627147497.txt.gz · Last modified: 2021/07/24 17:24 by breakice