毕业设计日志(一)
文章目录
很不巧,这一学期我都没有更新博客,主要是因为智能车竞赛对我的打击太大,以至于我这学期完全不想学习。另一方面,我打算参加 3+2 项目,自然有些开摆。在 2025 年的 9、10、11 这三个月中,我就玩了足足 660 小时的《X4:基石》。
不过,现在到了一个关键的时间节点,那就是做毕业设计。导师指派给我的选题是用 Spring Boot 制作一个功能完善的 webapp,并且部署到微信小程序里。我之前有过 Spring Boot 框架的开发经验,自然就接下了这个选题。开题报告里无非就是 Spring Boot、Vue、Mybatis、Docker 巴拉巴拉的技术栈,答辩时老师也没有多问什么。直到这几天我深入了解 Spring Boot 时才知道,Spring Boot 并非是和 Java 语言深度绑定的,使用 Kotlin 语言也可以进行 Spring Boot 开发,而且我的开题报告和答辩记录中也没有明确指出使用 Java 语言开发。因此,我打算尝试使用 Kotlin 完成我的毕业设计,并且完全符合开题报告中的要求。
配置 Kotlin 环境
Kotlin 是 JetBrains 开发的语言,能够在 JVM 中运行,与 Java 无缝衔接。换句话说,项目中有一半 Java 一半 Kotlin 也能正常运行。这个设计非常好,如果我在项目中遇到了一些用 Kotlin 难以解决的问题,则可以直接切换到 Java 实现。问题则出在 Kotlin 的开发团队——JetBrains 上。作为 VS Code 信徒,我几乎不使用 VS Code 以外的任何 IDE,甚至之前学习 LC-3 汇编时,我都是在 VS Code 中编写,并且使用插件调用 laser 完成编译的。而编写 Kotlin 项目的最佳 IDE 是 JetBrains 自家的 IntelliJ。我不用 IntelliJ 完全只是因为我又懒又蠢。不过好在,Kotlin 的影响力已经足够大,VS Code 中有相当优秀的插件帮助我完成 Kotlin 开发。
安装 kotlin-compiler
kotlin 内置在 IntelliJ 中。如果使用 VS Code,则需要单独安装 Kotlin 编译器。在 Github 中可以找到发行版编译器。解压后,将 bin 目录的绝对路径添加到 PATH 中,随后输入 kotlin -version 即可判断是否安装成功。
警告
编译器的路径中不能出现空格或中文,否则无法运行。
安装 jdk
kotlin 可以编译成 JVM 字节码并且在 JVM 中运行,因此想要运行 Kotlin,jdk 环境也必不可少。具体安装方法和 kotlin-compiler 类似,是任何一个熟练 Java coder 的必备技能。
编译运行一个 Kotlin 程序
创建 hello.kt,并写入以下内容:
1fun main() {
2 println("Hello, World!")
3}
编译并运行一个 kotlin 程序有两种方式:
- 方法一:
kotlinc命令将源代码编译为.class字节码,再用kotlin运行。
1PS C:\Users\jack_gdn\Desktop> kotlinc hello.kt
2PS C:\Users\jack_gdn\Desktop> kotlin HelloKt
3Hello, World!
- 方法二:
kotilnc命令将源代码编译为.jar包,再用java运行。
1PS C:\Users\jack_gdn\Desktop> kotlinc hello.kt -include-runtime -d hello.jar
2PS C:\Users\jack_gdn\Desktop> java -jar hello.jar
3Hello, World!
安装 VS Code 插件
三个必装的插件是 esafirm 开发的 Kotlin Formater、fwcd 开发的 Kotlin 和 mathiasfrolich 开发的 Kotlin Language。有的教程还推荐安装大名鼎鼎的 Code Runner 插件,但是我认为这个插件太不自由了,只给你傻瓜式的操作,无法细化需要执行的操作,所以我没有安装(也许过段时间我会后悔)。
除了 Code Runner,我打算通过自己编写 Launch 文件来定义运行和调试 Kotlin 时的行为。首先是编译任务。我使用 Maven 构建 Spring Boot 应用,所以编译任务只需执行命令 mvn clean package 即可,这样能够编译出一个可执行的 JAR 包;而对于调试来说,我需要编译出一个 .class 字节码文件,需要执行 mvn clean compile 命令。因此 tasks.json 可以这样编写:
1{
2 "version": "2.0.0",
3 "tasks": [
4 {
5 "label": "build",
6 "type": "shell",
7 "command": "mvn clean compile",
8 "problemMatcher": [],
9 "group": {
10 "kind": "build"
11 },
12 "presentation": {
13 "close": true
14 }
15 },
16 {
17 "label": "build",
18 "type": "shell",
19 "command": "mvn clean package",
20 "problemMatcher": [],
21 "group": {
22 "kind": "build",
23 "isDefault": true
24 },
25 "presentation": {
26 "close": true
27 }
28 }
29 ]
30}
对于调试,fwcd 的 Kotlin 插件已经给出了模板,在 launch.json 文件中添加以下内容,就可以创建一个调试任务:
1{
2 "version": "0.2.0",
3 "configurations":[
4 {
5 "type": "build",
6 "request": "launch",
7 "name": "Launch",
8 "projectRoot": "${workspaceFolder}",
9 "mainClass": "com/example/demo/DemoApplicationKt",
10 "preLaunchTask": "build"
11 }
12 ],
13 "compounds": []
14}
重要
需要将 mainClass 改为主类的实际路径