ITADN
JetBrains/kotlin
JetBrains/kotlin · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

official project TeamCity (simple build status) Maven Central GitHub license Revved up by Develocity

Kotlin 编程语言

欢迎使用 Kotlin
Kotlin 是由 JetBrains贡献者 开发的一种简洁的多平台语言。

一些实用链接:

Kotlin 多平台能力

对多平台编程的支持是 Kotlin 的主要优势之一。它在保留原生编程的灵活性和优势的同时,减少了为 不同平台 编写和维护相同代码所花费的时间。

编辑 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 脚本,该脚本包含这两个步骤

请注意:

  • 如果您添加的依赖项在构件名称中提到了操作系统(darwinmacosxlinuxwindows),请记得将它们添加到 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 基金会的结构和目标。