Skip to content

快速开始

本页展示一个最小 Kotlin/JVM 应用。示例使用仓库当前版本 1.0.0-DEV12

1. 添加仓库与依赖

kotlin
repositories {
    mavenCentral()
    maven("https://maven.cnb.cool/IceCream/maven/-/packages/")
}

dependencies {
    implementation("com.IceCreamQAQ.Rain:application:1.0.0-DEV12")
    implementation("com.IceCreamQAQ.Rain:event:1.0.0-DEV12")
    implementation("com.IceCreamQAQ.Rain:job:1.0.0-DEV12")
}

application 会传递引入 DI、类加载器与 Hook。其他业务模块按需添加。

2. 创建入口

kotlin
package example

import rain.application.FullStackApplicationLauncher

fun main() {
    FullStackApplicationLauncher.launch()
}

FullStackApplicationLauncher 会创建支持字节码转换的 AppClassloader,然后启动应用。若不需要类增强,可调用 BasicApplicationLauncher.launch()

3. 配置扫描包

创建 src/main/resources/conf/application.properties

properties
rain.scanPackages=example

完整启动器通常会从调用位置推断启动包并追加到扫描列表;显式配置可让项目结构更清晰。

4. 声明应用服务

kotlin
package example

import rain.api.loader.ApplicationService

class GreetingService : ApplicationService {
    override fun start() {
        println("Rain application started")
    }

    override fun stop() {
        println("Rain application stopping")
    }
}

实现 ApplicationService 的 Bean 会在应用启动阶段按 priority() 从小到大启动。JVM 关闭时,Rain 会触发停止流程。

TIP

Rain 的类扫描以配置中的 rain.scanPackages 为边界。Bean、监听器和任务类必须位于扫描范围内。

基于 Apache License 2.0 发布