准备库 mirai是跑在 JVM 上的,这里我使用 Gradle 作为构建工具 因此你需要准保好: 首先找到一个干净的文件夹,打开命令行,初始化项目,如果不懂选项的意思,照着我的选就行了
$ gradle init
Select type of project to generate:
1: basic
2: application
3: library
4: Gradle plugin
Enter selection (default: basic) [1..4] 2
Select implementation language:
1: C++
2: Groovy
3: Java
4: Kotlin
5: Scala
6: Swift
Enter selection (default: Java) [1..6] 4
Select build script DSL:
1: Groovy
2: Kotlin
Enter selection (default: Groovy) [1..2] 2
Select test framework:
1: JUnit 4
2: TestNG
3: Spock
4: JUnit Jupiter
Enter selection (default: JUnit 4) [1..4]
Project name (default: demo): 随你
Source package (default: demo): me.bot
BUILD SUCCESSFUL
2 actionable tasks: 2 executed
打开自己喜欢的编辑器,当然,开发 Java , IDEA 天下第一! 编辑 build.gradle.kts
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompile
plugins {
application
kotlin("jvm") version "1.7.20" id("io.ktor.plugin") version "2.1.3"
kotlin("plugin.serialization") version "1.7.20"
id("com.github.johnrengelman.shadow") version "7.1.2"
}
group = "robot"
version = "0.1.0"
repositories {
mavenCentral()
}
tasks.withType(KotlinJvmCompile::class.java) {
kotlinOptions.jvmTarget = "1.8"
}
dependencies {
// Mirai 库
api("net.mamoe:mirai-core-api:2.12.3")
runtimeOnly("net.mamoe:mirai-core:2.12.3")
// 日志库
implementation("org.slf4j:slf4j-log4j12:2.0.3")
// Json 序列化
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1")
// Ktor Http 请求
implementation("io.ktor:ktor-client-core:2.1.3")
implementation("io.ktor:ktor-client-cio:2.1.3")
}
tasks.jar {
manifest {
attributes(
"Main-Class" to "me.bot.Application",
"Implementation-Title" to project.name,
"Implementation-Version" to project.version
)
}
}
同样的,kotlin 也推荐最新版,此外,buildSrc 之类的不在本文范围内 编辑 src/main/resources/log4j.properties
log4j.rootLogger=INFO,stdout
log4j.logger.mirai=INFO
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t%m%n
然后我们先写个 Hello world 吧 删除 src/main/kotlin/Application.kt 下的文件,然后编辑 src/main/kotlin/Application.kt
package me.bot
object Application {
private val logger = LoggerFactory.getLogger(this.javaClass)
@JvmStatic
fun main(args: Array<String>): Unit = runBlocking {
logger.info("Hello world!")
}
}
运行看看是不是打印了 "Hello world" 如果是的,那么环境已经准备成功了 |