Kotlin Multiplatform 项目模板使用教程
1. 项目目录结构及介绍
kotlin-multiplatform-template/
├── build.gradle.kts
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── settings.gradle.kts
└── src
├── commonMain
│ └── kotlin
│ └── com
│ └── example
│ └── kotlinmultiplatformtemplate
│ └── Greeting.kt
├── commonTest
│ └── kotlin
│ └── com
│ └── example
│ └── kotlinmultiplatformtemplate
│ └── GreetingTest.kt
├── jvmMain
│ └── kotlin
│ └── com
│ └── example
│ └── kotlinmultiplatformtemplate
│ └── Main.kt
└── jvmTest
└── kotlin
└── com
└── example
└── kotlinmultiplatformtemplate
└── GreetingTest.kt
目录结构介绍
- build.gradle.kts: 项目的构建脚本,定义了项目的依赖、插件和其他构建配置。
- gradle: 包含 Gradle Wrapper 的相关文件,确保项目使用一致的 Gradle 版本。
- gradle.properties: 包含 Gradle 构建的属性配置,如 JVM 参数、版本号等。
- gradlew & gradlew.bat: Gradle Wrapper 的启动脚本,分别用于 Unix 和 Windows 系统。
- settings.gradle.kts: 项目的设置文件,定义了项目的名称和子项目。
- src: 项目的源代码目录,包含不同平台的代码。
- commonMain: 通用代码目录,适用于所有平台的代码。
- commonTest: 通用测试代码目录,适用于所有平台的测试代码。
- jvmMain: JVM 平台的主代码目录。
- jvmTest: JVM 平台的测试代码目录。
2. 项目启动文件介绍
src/jvmMain/kotlin/com/example/kotlinmultiplatformtemplate/Main.kt
package com.example.kotlinmultiplatformtemplate
fun main() {
println(Greeting().greet())
}
启动文件介绍
- Main.kt: 这是 JVM 平台的启动文件,定义了
main
函数,程序从这里开始执行。Greeting().greet()
调用了通用代码中的Greeting
类的方法,输出问候语。
3. 项目配置文件介绍
build.gradle.kts
plugins {
kotlin("multiplatform") version "1.5.31"
}
repositories {
mavenCentral()
}
kotlin {
jvm()
sourceSets {
val commonMain by getting {
dependencies {
implementation(kotlin("stdlib-common"))
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
}
}
val jvmMain by getting {
dependencies {
implementation(kotlin("stdlib"))
}
}
val jvmTest by getting {
dependencies {
implementation(kotlin("test-junit"))
}
}
}
}
配置文件介绍
- plugins: 定义了项目使用的插件,这里使用了
kotlin("multiplatform")
插件。 - repositories: 定义了项目的依赖仓库,这里使用了
mavenCentral()
。 - kotlin: 定义了项目的多平台配置,包括 JVM 平台和通用代码的配置。
- jvm(): 定义了 JVM 平台的配置。
- sourceSets: 定义了不同源代码集的依赖配置,包括通用代码和 JVM 平台的代码。
通过以上配置,项目可以支持多平台开发,并且可以方便地进行构建和测试。