Kotlin 编程语言
欢迎使用 Kotlin!
Kotlin 是由 JetBrains 和 贡献者 开发的一种简洁的多平台语言。
一些实用链接:
- Kotlin 网站
- 入门指南
- 试用 Kotlin
- Kotlin 标准库
- 问题跟踪器
- Kotlin YouTube 频道
- 论坛
- Kotlin 博客
- 订阅 Kotlin YouTube 频道
- 在 Twitter 上关注 Kotlin
- 公共 Slack 频道
- TeamCity CI 构建
- Kotlin 基金会
Kotlin 多平台能力
对多平台编程的支持是 Kotlin 的主要优势之一。它在保留原生编程的灵活性和优势的同时,减少了为 不同平台 编写和维护相同代码所花费的时间。
- Kotlin Multiplatform 和 Compose Multiplatform 用于在 Android、iOS、桌面和 Web 之间共享业务逻辑和 UI。
- 开始使用 Kotlin Multiplatform
- Kotlin Multiplatform 的优势
- 在所有平台上共享代码
- 在相似平台上共享代码
编辑 Kotlin
构建环境要求
此仓库使用 Gradle toolchains 功能 从 Eclipse Adoptium 项目中选择和自动配置所需的 JDK。
或者,仍然可以通过环境变量仅提供所需的 JDK (参见 gradle.properties 以了解支持的变量名称)。为确保 Gradle 仅使用来自环境变量的 JDK
- 通过传递
-Porg.gradle.java.installations.auto-detect=false选项来禁用 Gradle 工具链自动检测 (或将其放入$GRADLE_USER_HOME/gradle.properties)。
在 Windows 上,您可能需要为仓库添加长路径设置:
git config core.longpaths true
构建
该项目使用 Gradle 进行构建。在 Unix/macOS 上,使用以下命令运行 Gradle 以构建项目并运行测试:
./gradlew <tasks-and-options>
或在 Windows 上使用以下命令:
gradlew <tasks-and-options>
在首次项目配置时,gradle 将下载并设置以下位置的依赖项:
intellij-core是命令行编译器的一部分,仅包含必要的 API。idea-full是完整的 IntelliJ IDEA Community Edition,用于插件模块。
这些依赖项相当大,因此根据您互联网连接的质量, 您可能会遇到获取它们时的超时问题。在这种情况下,您可以在首次运行时通过指定以下 命令行参数来增加超时时间:
./gradlew -Dhttp.socketTimeout=60000 -Dhttp.connectionTimeout=60000
重要的 gradle 任务
clean- 清理构建结果dist- 将编译器发行版组装到dist/kotlinc/文件夹install- 构建并将所有公共构件安装到本地 maven 仓库coreLibsTest- 构建并运行 stdlib、reflect 和 kotlin-test 测试gradlePluginTest- 构建并运行 gradle 插件测试compilerTest- 构建并运行所有编译器测试
要复现 TeamCity 构建,请使用 -Pteamcity=true 标志。本地构建默认不运行 proguard,并且禁用了 jar 压缩。
可选: 某些构件,主要是 Maven 插件相关的构件,是使用 Maven 单独构建的。 请参阅 libraries/ReadMe.md 以获取详细信息。
要构建 Kotlin/Native,请参阅 kotlin-native/README.md。
在 IntelliJ IDEA 中处理项目
建议使用最新发布的 Intellij IDEA 版本(社区版或旗舰版)。您可以从此处下载 IntelliJ IDEA。
克隆项目后,通过选择项目目录在 Open project 对话框中导入项目。
为了方便处理编译器测试,建议使用 Kotlin Compiler Test Helper。
依赖项验证
我们在
仓库中为所有 Gradle 构建启用了 dependencies verification 功能。Gradle 将检查所用依赖项的哈希值(md5 和 sha256),如果本地构件缺失或具有与
verification-metadata.xml 文件中列出的不同哈希值,则构建将以
Dependency verification failed 错误失败。
预计 verification-metadata.xml 应仅使用修改构建的提交进行更新。以下是一些执行此类更新的提示:
- 删除
verification-metadata.xml中的components部分,以避免旧未使用依赖项的堆积。您可以使用以下命令:
#macOS
sed -i '' -e '/<components>/,/<\/components>/d' gradle/verification-metadata.xml
#Linux & Git for Windows
sed -i -e '/<components>/,/<\/components>/d' gradle/verification-metadata.xml
- 使用 Gradle 的
--write-verification-metadata命令重新生成依赖项(验证更新与您的更改相关)
./gradlew --write-verification-metadata sha256 -Pkotlin.native.enabled=true resolveDependencies
resolveDependencies 任务解析所有平台的依赖项,包括由插件下载的依赖项。
您也可以使用 ./scripts/update-verification-metadata.sh 脚本,该脚本包含这两个步骤
请注意:
- 如果您添加的依赖项在构件名称中提到了操作系统(
darwin、mac、osx、linux、windows),请记得将它们添加到implicitDependencies配置中,或在需要时更新resolveDependencies任务。resolveDependencies应解析所有依赖项, 包括针对不同平台的依赖项。 - 如果您的 Kotlin 项目文件夹中包含
local.properties文件,请确保其中不包含kotlin.native.enabled=false。 否则,仅适用于原生的依赖项可能不会被添加到验证元数据中。这是因为local.properties的优先级 高于 Gradle 命令中指定的-Pkotlin.native.enabled=true。
使用 -dev 版本
我们频繁发布 -dev 版本。
对于 -dev 版本,您可以使用 可用版本列表 并包含此 maven 仓库:
maven("https://redirector.kotlinlang.org/maven/bootstrap")
许可证
Kotlin 依据 Apache 许可证(2.0 版)的条款分发。详见 license folder。
贡献
请务必查阅 Kotlin 的 contributing guidelines,以了解如何为该项目提供帮助。
Kotlin 基金会
Kotlin 基金会是一个非营利组织,其使命是推广并推动 Kotlin 生态系统的发展。您可以在其 official website 上了解更多关于 Kotlin 基金会的结构和目标。