新建项目与开发环境

XiLaiTL大约 3 分钟

新建项目与开发环境

为什么选择Kotlin

最主要是开箱即用问题。Kotlin的入门真的是简单太多了!推荐看中文的Kotlin教程入手语法。book.kotlincn.netopen in new window

此外,Kotlin拥有一系列的语法设计,非常吸引我,所以用Kotlin!

  1. 支持高阶函数
  2. 支持领域特定语言DSL(Domain Specific Language)式的设计
    • Trailing Lambda的设计:函数调用尾部的lambda可以移动到括号外,参数只有lambda的时候可以去掉括号
    • 中缀运算符
    • 运算符重载
    • 大括号语法的统一设计:lambda表达式和代码块都是大括号
  3. 支持when表达式进行一定程度的分支匹配(没有很强的模式匹配扣分!比原版Java还不如!)

下载JDK

Kotlin支持在JVM上运行,因此这里我们选择JDK17作为我们的环境。

Java Downloads | Oracle 中国open in new window

下载Intellij IDEA

Kotlin作为Jetbrains推出的编程语言,其官方IDE自然是Jetbrains推出的最强大的IDE——Intellij IDEA。

从IDEA的官网open in new window下载Intellij IDEA Community Edition

idea-web
idea-web

安装插件

点击【文件 File】->【设置 Settings】->【插件 Plugins】

我们需要安装几个插件:

  • 中文语言包:简体中文插件

  • ANTLR v4:支持Antlr语法预览的插件,后续会使用到

plugins
plugins

新建项目

new-project
new-project

这里我们建一个项目名称为LearnCompiler的项目。

等待构建完成。如果这里出现下载gradle.zip异常的话,请根据附录的步骤修改下载的源。

Hello World!

点击左侧的【启动图标】

hello world
hello world

接下来会在IDEA的控制台栏目中看到输出结果。

配置Gradle

Gradle是什么?

Gradle是Java平台的一个项目管理工具,可以采用Kotlin 语言编写脚本参与项目构建, 整合Kotlin/Java项目的整体编译流程。

https://docs.gradle.org/current/userguide/userguide.htmlopen in new window

认识Gradle的配置文件

打开项目build.gradle.kts文件,然后跟着注释观察一下该文件:

plugins { //gradle插件,为项目构建提供支持的插件
    kotlin("jvm") version "1.9.21" //这里用了kotlin插件
}

group = "org.example"
version = "1.0-SNAPSHOT"

repositories { //项目依赖的获取仓库
    mavenCentral()
}

dependencies { //项目依赖
    testImplementation("org.jetbrains.kotlin:kotlin-test")
}

tasks.test { //一些编译构建的任务配置
    useJUnitPlatform()
}
kotlin { //gradle的kotlin的配置
    jvmToolchain(17)
}

运行Gradle任务

点击右侧【大象图标】,找到【build】任务,双击运行

gradle build
gradle build

在项目路径下build/libs/可以看到我们打包好的jar包。

build jar
build jar

可以通过命令行java -jar xxx.jar(xxx改为jar包的名称)运行我们的jar包程序

也可以右键jar包,点击【运行】或者【调试】来调试jar包。

Run Jar
Run Jar

配置项目Gradle

当然现在是有问题的,无法运行。提示.jar中没有主清单属性。

我们需要按如下方式配置build.gradle.kts文件

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    kotlin("jvm") version "1.9.21"
    application //添加application插件
    antlr  //添加antlr插件
}

group = "org.example"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
}

dependencies {
    testImplementation("org.jetbrains.kotlin:kotlin-test")
    antlr("org.antlr:antlr4:4.13.1") //添加antlr依赖
}

tasks.generateGrammarSource { //antlr的任务配置
    arguments = arguments + listOf("-visitor", "-long-messages")
//    outputDirectory =  File("src/gen")
}

tasks.jar{
    manifest{
        attributes("Main-Class" to "org.example.MainKt") //清单文件配置
    }
}

application {
    mainClass.set("org.example.MainKt") //application文件配置
}

tasks.test {
    useJUnitPlatform()
}
kotlin {
    jvmToolchain(17)
}
tasks.withType<KotlinCompile> {
    dependsOn(tasks.generateGrammarSource) //调整生成语法文件的顺序,在编译之前就要生成了
}

调整后,点击右侧【大象图标】->【刷新图标】

rebuild
rebuild

再次执行build任务,再次运行jar包。

附录:下载Gradle异常

打开项目文件夹下:gradle/wrapper/gradle-wrapper.properties

修改distributionUrl这一项为:

distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.4-bin.zip

点击右侧【大象图标】->【刷新图标】

rebuild
rebuild
上次编辑于:
贡献者: XiLaiTL