Update docs

This commit is contained in:
Him188 2020-09-19 23:29:28 +08:00
parent 9a86db09a8
commit ec03f8322d
10 changed files with 304 additions and 238 deletions

View File

@ -15,65 +15,32 @@ Mirai 是一个在全平台下运行,提供 QQ 协议支持的高效率机器
# mirai-console
高效率插件支持 QQ 机器人框架, 机器人核心来自 [mirai](https://github.com/mamoe/mirai)
高效率 QQ 机器人框架,机器人核心来自 [mirai](https://github.com/mamoe/mirai)
## 模块说明
![Gradle CI](https://github.com/mamoe/mirai-console/workflows/Gradle%20CI/badge.svg?branch=master)
[![Gitter](https://badges.gitter.im/mamoe/mirai.svg)](https://gitter.im/mamoe/mirai?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
console 由后端和前端一起工作. 使用时必须选择一个前端.
## 开发
- `mirai-console`: console 的后端, 包含插件管理, 指令系统, 配置系统.
- **[准备工作 - 环境和前置知识](docs/Preparations.md)**
- **[配置项目](docs/ConfiguringProjects.md)**
- **[启动 Console](docs/Run.md)**
### 后端插件开发基础
- 插件 - [Plugin 模块](docs/Plugins.md)
- 指令 - [Command 模块](docs/Commands.md)
- 存储 - [PluginData 模块](docs/PluginData.md)
- 权限 - [Permission 模块](docs/Permissions.md)
前端:
- `mirai-console-terminal`: console 的 Unix 终端界面前端.
- `mirai-console-graphical`: console 的 JavaFX 图形化界面前端. (开发中)
**注意:`mirai-console` 1.0-RC 发布之前, 前端请使用 `mirai-console-pure` 而不是 `mirai-console-terminal`**
**注意:`mirai-console` 后端和 terminal 前端正在进行完全的重构, 所有 API 都不具有稳定性**
### 版本
[Version]: https://api.bintray.com/packages/him188moe/mirai/mirai-console/images/download.svg?
[Bintray Download]: https://bintray.com/him188moe/mirai/mirai-console/
详见 [版本规范](docs/README.md#版本规范)
| 版本类型 | 版本号 |
|:------:|:------------:|
| 稳定 | - |
| 预览 | 1.0-M4 |
| 开发 | [![Version]][Bintray Download] |
### 使用
**查看示例插件**
**示例插件**
- [mirai-console-example-plugin (Kotlin DSL)](https://github.com/Him188/mirai-console-example-plugin)
- [mirai-console-example-plugin (Groovy DSL)](https://github.com/Karlatemp/mirai-console-example-plugin)
正在更新中的文档:[参考文档](docs/README.md)
### 后端插件开发进阶
#### Gradle
`CORE_VERSION`: [ ![Download](https://api.bintray.com/packages/him188moe/mirai/mirai-core/images/download.svg?) ](https://bintray.com/him188moe/mirai/mirai-core/)
- 扩展 - [Extension 模块和扩展点](docs/Extensions.md)
build.gradle.kts
```kotlin
repositories {
jcenter()
}
dependencies {
implementation("net.mamoe:mirai-core:$CORE_VERSION") // mirai-core 的 API
implementation("net.mamoe:mirai-console:$CONSOLE_VERSION") // 后端
testImplementation("net.mamoe:mirai-console-terminal:$CONSOLE_VERSION") // 前端, 用于启动测试
}
```
**注意:`mirai-console` 1.0-RC 发布之前, 前端请使用 `mirai-console-pure` 而不是 `mirai-console-terminal`**
#### Maven
同理 Gradle
### 实现前端
- [FrontEnd](docs/FrontEnd.md)

View File

@ -14,8 +14,8 @@ import java.time.Instant
internal object MiraiConsoleBuildConstants { // auto-filled on build (task :mirai-console:fillBuildConstants)
@JvmStatic
val buildDate: Instant = Instant.ofEpochSecond(1599934775)
val buildDate: Instant = Instant.ofEpochSecond(1600522812)
@JvmStatic
val version: Semver = Semver("1.0-M4", Semver.SemverType.LOOSE)
val version: Semver = Semver("1.0-RC-dev-28", Semver.SemverType.LOOSE)
}

View File

@ -54,7 +54,7 @@ internal fun org.gradle.api.Project.`publishing`(configure: org.gradle.api.publi
inline fun Project.setupPublishing(
artifactId: String,
bintrayRepo: String = "mirai",
bintrayPkgName: String = "mirai-console",
bintrayPkgName: String = artifactId,
vcs: String = "https://github.com/mamoe/mirai-console"
) {

49
docs/Appendix.md Normal file
View File

@ -0,0 +1,49 @@
# Mirai Console - Appendix
### Mirai Console 演进
Mirai Console 是不断前进的框架,将来必定会发生 API 弃用和重构。
维护者会严谨地推进每一项修改,并提供迁移周期(至少 2 个次版本)。
#### 版本规范
Mirai Console 的版本号遵循 [语义化版本 2.0.0](https://semver.org/lang/zh-CN/#spec-item-9) 规范。
在日常开发中, Mirai Console 会以 `-dev-1``-dev-2` 等版本后缀发布开发预览版本。这些版本仅用于兼容性测试等目的,无稳定性保证。
在大版本开发过程中Mirai Console 会以 `-M1`, `-M2` 等版本后缀发布里程碑预览版本。代表一系列功能的完成,但还不稳定。
这些版本里新增的 API 仍可能还会在下一个 Milestone 版本变化,因此请按需使用。
在大版本即将发布前Mirai Console 会以 `-RC` 版本后缀发布最终的预览版本。
`RC` 表示新版本 API 已经确定,离稳定版发布只差最后的一些内部优化或 bug 修复。
#### 版本选择
**稳定性**:稳定 (`x.y.z`) > 发布预览 (`-RC`) > 里程碑预览 (`-M`) > 开发 (`-dev`)。
| 目的 | 推荐至少更新到版本 |
|:--------------------------:|:--------------:|
| 生产环境 | `x.y.z` |
| 希望尽早体验稳定新特性的插件作者 | `-RC` |
| 无论如何都想体验新特性的插件作者 | `-M` |
| 前端实现者, 底层插件作者 | `-M` |
| 为 Mirai Console 提交 PR | `-dev` |
其中,‘底层插件’ 表示提供扩展等的插件。如权限系统,其他语言插件加载器等。
#### 更新兼容性
对于 `x.y.z` 版本号:
- 当 `z` 增加时,只会有 bug 修复,和必要的新函数添加(为了解决某一个问题),不会有破坏性变化。
- 当 `y` 增加时,可能有新 API 的引入,和旧 API 的弃用。但这些弃用会经过一个弃用周期后才被删除(隐藏)。向下兼容得到保证。
- 当 `x` 增加时,任何 API 都可能会有变化。无兼容性保证。
#### 弃用周期
一个计划被删除的 API将会在下一个次版本开始经历弃用周期。
如一个 API 在 `1.1.0` 起被弃用,它首先会是 `WARNING` (使用时会得到一个编译警告)弃用级别。
`1.2.0` 上升为 `ERROR`(使用时会得到一个编译错误);
`1.3.0` 上升为 `HIDDEN`(使用者无法看到这些 API)。
`HIDDEN` 的 API 仍然会保留在代码中并正常编译,以提供二进制兼容性,直到下一个主版本更新。

View File

@ -0,0 +1,80 @@
# Mirai Console - Configuring Projects
配置 Mirai Console 项目。
## 模块说明
console 由后端和前端一起工作. 使用时必须选择一个前端.
- `mirai-console`: Mirai Console 后端。
- `mirai-console-terminal`: 终端前端,适用于 JVM。
- [`MiraiAndroid`](https://github.com/mzdluo123/MiraiAndroid): Android 应用前端。
**注意:`mirai-console` 1.0-RC 发布之前, 前端请使用 `mirai-console-pure` 而不是 `mirai-console-terminal`**
## 选择版本
有关各类版本的区别,参考 [版本规范](Appendix.md#版本规范)
[Version]: https://api.bintray.com/packages/him188moe/mirai/mirai-console/images/download.svg?
[Bintray Download]: https://bintray.com/him188moe/mirai/mirai-console/
| 版本类型 | 版本号 |
|:------:|:------------:|
| 稳定 | - |
| 预览 | 1.0-M4 |
| 开发 | [![Version]][Bintray Download] |
## 配置项目
### 使用模板项目
Mirai 鼓励插件开发者将自己的作品开源,并为此提供了模板项目。
注意,模板项目依赖的 Mirai Console 不一定是最新的。请检查
1. 访问 [mirai-console-plugin-template](https://github.com/project-mirai/mirai-console-plugin-template)
2. 点击绿色按钮 "Use this template",创建项目
3. 克隆项目,检查并修改生成的属性
### 使用 Gradle 插件配置项目
`VERSION` 可在
若使用 `build.gradle.kts`:
```kotlin
plugins {
id("net.mamoe.mirai-console") version "VERSION"
}
```
若使用 `build.gradle`:
```groovy
plugins {
id 'net.mamoe.mirai-console' version 'VERSION'
}
```
完成。Mirai Console Gradle 插件会为你配置依赖等所有编译环境。
### 手动配置项目
添加依赖:
`build.gradle.kts`
```kotlin
repositories {
jcenter()
}
dependencies {
compileOnly("net.mamoe:mirai-core:$CORE_VERSION") // mirai-core 的 API
compileOnly("net.mamoe:mirai-console:$CONSOLE_VERSION") // 后端
testImplementation("net.mamoe:mirai-console-terminal:$CONSOLE_VERSION") // 前端, 用于启动测试
testImplementation("net.mamoe:mirai-console-terminal:$CONSOLE_VERSION") // 前端, 用于启动测试
}
```
之后还需要配置 Kotlin `jvm-default` 编译参数Kotlin 和 Java 的编译目标等。
在打包插件时必须将依赖一并打包进插件 JAR且排除 `mirai-core``mirai-console` 和它们的间接依赖,否则插件不会被加载。

2
docs/Contributing.md Normal file
View File

@ -0,0 +1,2 @@
# Mirai Console - Contributing

103
docs/Preparations.md Normal file
View File

@ -0,0 +1,103 @@
# Mirai Console - Preparations
***如果跳过本节内容,你很可能遇到无法解决的问题。***
### 环境要求
*不接受降低最低版本要求的建议*
- JDK 11
- AndroidAndroid SDK 26+ Android 8.0)
- Kotlin: 1.4
*Mirai Console 需要的 Kotlin 版本会与 Kotlin 最新稳定版本同步。*
### 开发插件的准备工作
- 安装并配置 JDK 11
若使用 Java或要修改 Mirai Console
- 使用 [IntelliJ IDEA](https://www.jetbrains.com/idea/) (或 `Android Studio`)。
- IDE 需装有 [Kotlin Jvm Blocking Bridge](https://github.com/mamoe/kotlin-jvm-blocking-bridge) 插件 (先启动你的 IDE再点击 [一键安装](https://plugins.jetbrains.com/embeddable/install/14816))
若使用 Kotlin无特别要求。
## 前置知识
要学习为 mirai-console 开发原生支持的插件, 需要:
- 掌握 Java 基础
- 至少粗略了解 Kotlin 基础语法30 分钟):
- [基本类型](https://www.kotlincn.net/docs/reference/basic-types.html)
- [类与继承](https://www.kotlincn.net/docs/reference/classes.html)
- [属性与字段](https://www.kotlincn.net/docs/reference/properties.html)
- [接口](https://www.kotlincn.net/docs/reference/interfaces.html)
- [扩展](https://www.kotlincn.net/docs/reference/extensions.html)
- [数据类](https://www.kotlincn.net/docs/reference/data-classes.html)
- [对象](https://www.kotlincn.net/docs/reference/object-declarations.html)
- [密封类](https://www.kotlincn.net/docs/reference/sealed-classes.html)
- **[Java 中调用 Kotlin](https://www.kotlincn.net/docs/reference/java-to-kotlin-interop.html)**
- 对于 Java 使用者,请阅读:
- [Java 用户的使用指南](#kotlin-源码阅读帮助)
- [在 Java 使用 Mirai Console 中的 Kotlin `suspend` 函数](#在-java-使用-mirai-console-中的-kotlin-suspend-函数)
- 对于 Kotlin 使用者,请熟知 [Kotlin `1.4` 版本带来的新特性](#mirai-console-使用的-kotlin-14-版本的新特性)
### Kotlin 源码阅读帮助
- Java 中的「方法」在 Kotlin 中均被称为「函数」。
- Kotlin 默认的访问权限是 `public`。如 Kotlin `class Test` 相当于 Java 的 `public class Test {}`
- Kotlin 的函数定义 `fun test(int: Int): String` 相当于 Java 的方法定义 `public String test(int int)`
### 在 Java 使用 Mirai Console 中的 Kotlin `suspend` 函数
#### 什么是 `suspend` 函数
`suspend` 函数中文是「挂起函数」,是 Kotlin 「[协程](https://www.kotlincn.net/docs/reference/coroutines/coroutines-guide.html)」的一部分。
Kotlin 协程是语言级特性,函数的修饰符 `suspend` 会在编译阶段被处理。
对于一个挂起函数:
```kotlin
suspend fun test(): String
```
它会被编译为 `public Object test(Continuation<String> $completion)`
这是因为 Kotlin 对所有挂起函数都有这样的内部变化,并在编译时实现了协程的一些特性。
Java 用户无法调用这样的方法,因为 `Continuation` 的实现很复杂。
Mamoe 为此开发了 Kotlin 编译器插件 [Kotlin Jvm Blocking Bridge](https://github.com/mamoe/kotlin-jvm-blocking-bridge),通过 `@JvmBlockingBridge` 注解,在编译期额外生成一个供 Java 使用的方法,让 Java 用户可以使用拥有源码内相同的函数签名的方法。
要获取详细信息,参考 [Kotlin Jvm Blocking Bridge 编译器插件](https://github.com/mamoe/kotlin-jvm-blocking-bridge/blob/master/README-chs.md#%E7%BC%96%E8%AF%91%E5%99%A8%E6%8F%92%E4%BB%B6)
### Mirai Console 使用的 Kotlin `1.4` 版本的新特性
在官方文档的 [语言特性与改进](https://www.kotlincn.net/docs/reference/whatsnew14.html#%E8%AF%AD%E8%A8%80%E7%89%B9%E6%80%A7%E4%B8%8E%E6%94%B9%E8%BF%9B) 基础上Mirai Console 的一些设计基于 Kotlin 1.4 的更多新特性。
#### `object` 内的扩展函数的自动引用
对于如下定义:
```kotlin
package org.example
object Obj {
fun String.foo()
}
```
在 Kotlin `1.3`,要调用 `foo`,必须使用:
```kotlin
Obj.run {
"str".foo()
}
```
因为 IDE 不会自动为 `String.foo` 添加 `import`
Kotlin `1.4` 解决了这个问题。在使用 `"str".foo` 时 Kotlin 会自动添加 `org.example.Obj.foo` 的引用。
Mirai Console 很多单例对象都设计为 `interface + companion object INSTANCE` 的接口与实现模式,需要这样的新特性。例如:
```kotlin
interface MiraiConsole {
companion object INSTANCE : MiraiConsole by MiraiConsoleImpl // MiraiConsoleImpl 是内部实现,不公开
}
```

View File

@ -1,183 +1,3 @@
# Mirai Console
欢迎来到 mirai-console 开发文档!
## 目录
- **[准备工作](#准备工作)**
- **[启动 Console](Run.md)**
### 后端插件开发基础
- 插件 - [Plugin 模块](Plugins.md)
- 指令 - [Command 模块](Commands.md)
- 存储 - [PluginData 模块](PluginData.md)
- 权限 - [Permission 模块](Permissions.md)
### 后端插件开发进阶
- 扩展 - [Extension 模块和扩展点](Extensions.md)
### 实现前端
- [FrontEnd](FrontEnd.md)
[`Plugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt
[`Annotations`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/Annotations.kt
[`PluginData`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt
[`JavaPluginScheduler`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPluginScheduler.kt
[`JvmPlugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPlugin.kt
[`PluginConfig`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginConfig.kt
[`PluginLoader`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoader.kt
[`ConsoleInput`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt
[`PluginDataStorage`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt
[`Command`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt
## 准备工作
***如果跳过本节内容,你很可能遇到无法解决的问题。***
### 环境要求
*不接受降低最低版本要求的建议*
- JDK 11
- AndroidAndroid SDK 26+ Android 8.0)
- Kotlin: 1.4
*Mirai Console 需要的 Kotlin 版本会与 Kotlin 最新稳定版本同步。*
### 开发插件的准备工作
- 安装并配置 JDK 11
若使用 Java或要修改 Mirai Console
- 使用 [IntelliJ IDEA](https://www.jetbrains.com/idea/) (或 `Android Studio`)。
- IDE 需装有 [Kotlin Jvm Blocking Bridge](https://github.com/mamoe/kotlin-jvm-blocking-bridge) 插件 (先启动你的 IDE再点击 [一键安装](https://plugins.jetbrains.com/embeddable/install/14816))
若使用 Kotlin无特别要求。
### 前置知识
要学习为 mirai-console 开发原生支持的插件, 需要:
- 掌握 Java 基础
- 至少粗略了解 Kotlin 基础语法30 分钟):
- [基本类型](https://www.kotlincn.net/docs/reference/basic-types.html)
- [类与继承](https://www.kotlincn.net/docs/reference/classes.html)
- [属性与字段](https://www.kotlincn.net/docs/reference/properties.html)
- [接口](https://www.kotlincn.net/docs/reference/interfaces.html)
- [扩展](https://www.kotlincn.net/docs/reference/extensions.html)
- [数据类](https://www.kotlincn.net/docs/reference/data-classes.html)
- [对象](https://www.kotlincn.net/docs/reference/object-declarations.html)
- [密封类](https://www.kotlincn.net/docs/reference/sealed-classes.html)
- **[Java 中调用 Kotlin](https://www.kotlincn.net/docs/reference/java-to-kotlin-interop.html)**
- 对于 Java 使用者,请阅读 [Java 用户的使用指南](#java-用户的使用指南)[在 Java 使用 Mirai Console 中的 Kotlin `suspend` 函数](#在-java-使用-mirai-console-中的-kotlin-suspend-函数)
- 对于 Kotlin 使用者,请熟知 [Kotlin `1.4` 版本带来的新特性](#mirai-console-使用的-kotlin-14-版本的新特性)
## 附录
### Java 用户的使用指南
- Java 中的「方法」在 Kotlin 中均被称为「函数」。
- Kotlin 默认的访问权限是 `public`。如 Kotlin `class Test` 相当于 Java 的 `public class Test {}`
- Kotlin 的函数定义 `fun test(int: Int): String` 相当于 Java 的方法定义 `public String test(int int)`
### 在 Java 使用 Mirai Console 中的 Kotlin `suspend` 函数
#### 什么是 `suspend` 函数
`suspend` 函数中文是「挂起函数」,是 Kotlin 「[协程](https://www.kotlincn.net/docs/reference/coroutines/coroutines-guide.html)」的一部分。
Kotlin 协程是语言级特性,函数的修饰符 `suspend` 会在编译阶段被处理。
对于一个挂起函数:
```kotlin
suspend fun test(): String
```
它会被编译为 `public Object test(Continuation<String> $completion)`
这是因为 Kotlin 对所有挂起函数都有这样的内部变化,并在编译时实现了协程的一些特性。
Java 用户无法调用这样的方法,因为 `Continuation` 的实现很复杂。
Mamoe 为此开发了 Kotlin 编译器插件 [Kotlin Jvm Blocking Bridge](https://github.com/mamoe/kotlin-jvm-blocking-bridge),通过 `@JvmBlockingBridge` 注解,在编译期额外生成一个供 Java 使用的方法,让 Java 用户可以使用拥有源码内相同的函数签名的方法。
要获取详细信息,参考 [Kotlin Jvm Blocking Bridge 编译器插件](https://github.com/mamoe/kotlin-jvm-blocking-bridge/blob/master/README-chs.md#%E7%BC%96%E8%AF%91%E5%99%A8%E6%8F%92%E4%BB%B6)
### Mirai Console 使用的 Kotlin `1.4` 版本的新特性
在官方文档的 [语言特性与改进](https://www.kotlincn.net/docs/reference/whatsnew14.html#%E8%AF%AD%E8%A8%80%E7%89%B9%E6%80%A7%E4%B8%8E%E6%94%B9%E8%BF%9B) 基础上Mirai Console 的一些设计基于 Kotlin 1.4 的更多新特性。
#### `object` 内的扩展函数的自动引用
对于如下定义:
```kotlin
package org.example
object Obj {
fun String.foo()
}
```
在 Kotlin `1.3`,要调用 `foo`,必须使用:
```kotlin
Obj.run {
"str".foo()
}
```
因为 IDE 不会自动为 `String.foo` 添加 `import`
Kotlin `1.4` 解决了这个问题。在使用 `"str".foo` 时 Kotlin 会自动添加 `org.example.Obj.foo` 的引用。
Mirai Console 很多单例对象都设计为 `interface + companion object INSTANCE` 的接口与实现模式,需要这样的新特性。例如:
```kotlin
interface MiraiConsole {
companion object INSTANCE : MiraiConsole by MiraiConsoleImpl // MiraiConsoleImpl 是内部实现,不公开
}
```
#### Mirai Console 演进
Mirai Console 是不断前进的框架,将来必定会发生 API 弃用和重构。
维护者会严谨地推进每一项修改,并提供迁移周期(至少 2 个次版本)。
##### 版本规范
Mirai Console 的版本号遵循 [语义化版本 2.0.0](https://semver.org/lang/zh-CN/#spec-item-9) 规范。
在日常开发中, Mirai Console 会以 `-dev-1``-dev-2` 等版本后缀发布开发预览版本。这些版本仅用于兼容性测试等目的,无稳定性保证。
在大版本开发过程中Mirai Console 会以 `-M1`, `-M2` 等版本后缀发布里程碑预览版本。代表一系列功能的完成,但还不稳定。
这些版本里新增的 API 仍可能还会在下一个 Milestone 版本变化,因此请按需使用。
在大版本即将发布前Mirai Console 会以 `-RC` 版本后缀发布最终的预览版本。
`RC` 表示新版本 API 已经确定,离稳定版发布只差最后的一些内部优化或 bug 修复。
##### 版本选择
**稳定性**:稳定 (`x.y.z`) > 发布预览 (`-RC`) > 里程碑预览 (`-M`) > 开发 (`-dev`)。
| 目的 | 推荐至少更新到版本 |
|:--------------------------:|:--------------:|
| 生产环境 | `x.y.z` |
| 希望尽早体验稳定新特性的插件作者 | `-RC` |
| 无论如何都想体验新特性的插件作者 | `-M` |
| 前端实现者, 底层插件作者 | `-M` |
| 为 Mirai Console 提交 PR | `-dev` |
其中,‘底层插件’ 表示提供扩展等的插件。如权限系统,其他语言插件加载器等。
##### 更新兼容性
对于 `x.y.z` 版本号:
- 当 `z` 增加时,只会有 bug 修复,和必要的新函数添加(为了解决某一个问题),不会有破坏性变化。
- 当 `y` 增加时,可能有新 API 的引入,和旧 API 的弃用。但这些弃用会经过一个弃用周期后才被删除(隐藏)。向下兼容得到保证。
- 当 `x` 增加时,任何 API 都可能会有变化。无兼容性保证。
##### 弃用周期
一个计划被删除的 API将会在下一个次版本开始经历弃用周期。
如一个 API 在 `1.1.0` 起被弃用,它首先会是 `WARNING` (使用时会得到一个编译警告)弃用级别。
`1.2.0` 上升为 `ERROR`(使用时会得到一个编译错误);
`1.3.0` 上升为 `HIDDEN`(使用者无法看到这些 API)。
`HIDDEN` 的 API 仍然会保留在代码中并正常编译,以提供二进制兼容性,直到下一个主版本更新。

View File

@ -2,11 +2,11 @@
Mirai Console 可以独立启动,也可以被嵌入到某个应用中。
## 使用第三方工具自动启动
## 使用第三方工具自动独立启动
https://github.com/LXY1226/MiraiOK
## 独立启动
## 手动配置独立启动
### 环境
- JRE 11+ / JDK 11+

View File

@ -1,2 +1,47 @@
# mirai-console-gradle
# Mirai Console Gradle Plugin
Mirai Console Gradle 插件。
## 使用
参考 [ConfiguringProjects](../../docs/ConfiguringProjects.md#gradle)[
## 功能
- 为 `main` 源集配置 `mirai-core``mirai-console` 依赖
- 为 `test` 源集配置 `mirai-core-qqandroied`, `mirai-console-terminal` 的依赖 (用于启动测试)
- 添加 mirai 依赖仓库链接
- 配置插件 JAR 打包构建任务 `buildPlugin` (带依赖)
### `buildPlugin`
用于打包插件和依赖为可以放入 Mirai Console `plugins` 目录加载的插件 JAR。
#### 执行 `buildPlugin`
```shell script
$ gradlew buildPlugin
```
打包结果存放在 `build/mirai/` 目录下。
## 配置
若要修改 Mirai Console Gradle 插件的默认配置,在 `build.gradle.kts``build.gradle` 内,使用 `mirai`
```kotlin
mirai { // this: MiraiConsoleExtension
// 配置
}
```
DSL 详见 [MiraiConsoleExtension](src/main/kotlin/net/mamoe/mirai/console/gradle/MiraiConsoleExtension.kt)。
#### 排除依赖
如果要在打包 JAR`buildPlugin`)时排除一些依赖,请使用如下配置:
```kotlin
mirai {
excludeDependency("com.google.code.gson", "gson")
}
```