@@ -38,4 +38,85 @@ java -jar mcfpp.jar example.json
3838
3939## 使用Gradle构建
4040
41- TODO
41+ 基于Gradle的MCFPP项目拥有更多的功能支持。
42+
43+ ::: tip
44+ 本例使用IntelliJ Idea,Gradle DSL使用Kotlin
45+ :::
46+
47+ 要使用Gradle构建MCFPP项目,首先需要创建一个空白的Java项目或Kotlin项目。MCFPP支持Java和Kotlin,但是由于本身由Kotlin编写,使用Kotlin可以获得更好的编写体验。
48+
49+ ![ alt text] ( image.png )
50+
51+ 创建项目后,等待项目加载完成,打开` build.gradle.kts ` 。按照如下配置Gradle以添加MCFPP相关支持:
52+
53+ ``` kt
54+ plugins {
55+ // ...已有的代码
56+ // 添加MCFPP插件
57+ id(" mcfpp-gradle" ) version " 1.0.2-SNAPSHOT"
58+ }
59+
60+ repositories {
61+ // ...已有的代码
62+ // 添加MCFPP所需要的依赖库的仓库地址以及MCFPP所在库的地址
63+ maven(" https://nexus.mcfpp.top/repository/maven-public/" )
64+ maven(" https://jitpack.io" )
65+ maven(" https://maven.aliyun.com/nexus/content/groups/public/" )
66+ maven(" https://libraries.minecraft.net" )
67+ }
68+
69+ group = " top.mcfpp"
70+ version = " 1.0-SNAPSHOT"
71+
72+ dependencies {
73+ // ...已有的代码
74+ // 添加MCFPP库。如果不使用MCFPP MNI可不添加本行
75+ implementation(" top.mcfpp:mcfpp:1.0.2-SNAPSHOT" )
76+ }
77+ ```
78+
79+ 随后,打开` settings.gradle.kts ` ,添加如下配置:
80+
81+ ``` kt
82+ // 添加插件需要的依赖库的地址,以及插件所在的库的地址
83+ pluginManagement {
84+ repositories {
85+ maven(" https://nexus.mcfpp.top/repository/maven-public/" )
86+ maven(" https://jitpack.io" )
87+ maven(" https://maven.aliyun.com/nexus/content/groups/public/" )
88+ maven(" https://libraries.minecraft.net" )
89+ gradlePluginPortal()
90+ }
91+ }
92+ ```
93+
94+ 然后,重新加载gradle项目,如果一切正常,你就成功地为Gradle添加了MCFPP支持。MCFPP默认会读取` src/main/mcfpp ` 中的mcfpp文件,所以你需要在对应的位置新建这个文件夹,在其中编写MCFPP。
95+
96+ 使用Gradle时候,你不需要编写项目配置相关的json文件。对应的,你可以在` build.gradle.kts ` 中对MCFPP项目进行配置。使用` mcfpp ` 方法块配置你的项目:
97+
98+ ``` kt
99+ mcfpp {
100+ version = " 1.21.4"
101+ description = " MCFPP Example Project"
102+ }
103+ ```
104+
105+ 事实上此方法块修改的是` Project ` 类中的` config ` 字段。此字段是[ ` ProjectConfig ` ] ( https://github.com/MinecraftFunctionPlusPlus/MCFPP/blob/kotlin-latest/src/main/kotlin/top/mcfpp/ProjectConfig.kt ) 的实例,其管理了MCFPP项目的各项配置。
106+
107+ | 字段名| 类型| 默认值| 描述|
108+ | -| -| -| -|
109+ | version| String| "1.21.8"| 工程对应的mc版本。仅支持正式版本,不支持快照|
110+ | rootNamespace| String| "default"| 工程的默认命名空间|
111+ | targetPath| java.nio.file.Path?| null| 数据包输出的文件夹。若为空,在使用配置文件的时候为` $root/build/ ` ,使用Gradle时为Gradle构建产出目录的` datapack ` 文件夹中(通常为` build/datapack ` )|
112+ | commentLevel| top.mcfpp.command.CommandLevel| CommentLevel.DEBUG| 注释输出等级|
113+ | root| java.nio.file.Path?| null| 工程的根目录。若为空,则为配置json文件所在的目录,或Gradle项目的根目录|
114+ | name| String| "new_mcfpp_project"| 工程的名字|
115+ | description| String| "A new datapack"| 数据包的描述|
116+ | includes| ArrayList\< String>| ArrayList()| 工程包含的所有引用|
117+ | jars| ArrayList\< String>| ArrayList()| 所有Jar文件的路径|
118+ | sourcePath| java.nio.file.Path?| null| mcfpp源代码根目录。若为空,在使用配置文件的时候为` $root ` ,在使用Gradle时为` src/main/mcfpp ` |
119+ | noDatapack| Boolean| false| 不生成数据包|
120+ | copyImport| Boolean| true| 生成数据包的时候复制导入的库|
121+
122+ 你可以在gradle任务的` build ` 分类下找到名为` mcfppCompile ` 的任务。
0 commit comments