第八天:安装 IntelliJ IDEA

为了在後续章节里示范 TeamCity 可以怎麽协助我们建置专案及一系列的自动化,我们需要有一个可以建置、可以跑测试、可以产生覆盖率报告、可以产生 API 文件的专案,也会利用这个机会说明开发者这端的开发流程及配合 DevOps 流程有哪些工作要做。为了带大家写出这个示范用的程序,今天要带着大家先安装开发工具。

这个系列并没有限定读者的背景是哪个程序语言,您可以依据自己的喜好选择熟悉的程序语言来练习,虽然程序语言的语法和对应的工具生态系会不同,但在 TeamCity 的核心概念及操作流程上是共通的。在接下来的练习里,笔者会使用同样由 JetBrains 所开发的 Kotlin 程序语言搭配 JVM 生态系广为使用的 Gradle 建置工具做示范,以撰写一个购物车的函式库为案例,搭配 TeamCity 完成一系列 CI/CD 的开发流程。

安装 JetBrains Toolbox App

为了方便开发,笔者会强烈建议使用 JetBrains IDE,您可以依照您习惯的程序语言安装对应的 IDE,比方说 Java/Kotlin 选择 IntelliJ IDEA、PHP 选择 PhpStorm、Python 选择 PyCharm、Go 选择 GoLand…等。假如您是 Multilingual 的话,电脑里应该装了不少 IDE 吧?

为了方便管理众多 IDE 们,JetBrains 推出了 Toolbox App 工具,可以用一个工具管理所有 JetBrains IDE,让下载、安装、更新都变得很简单,再也不用自行手动操作了。

要安装 JetBrains Toolbox App,请先到 官网下载页 ,网页会自动侦测作业系统後下载对应的安装档(macOS 会下载到 .dmg、Windows 会下载到 .exe)。安装方式很简单,只要点两下安装档,再依据画面上的提示一路按到底就可以完成。

安装 IntelliJ IDEA

安装好後,Toolbox App 会常驻在系列工具列上,点一下图示就会开启面板,Toolbox App 会把可以安装的 IDE 全数列出。以安装 IntelliJ IDEA 为例,点一下旁边的 Install 就会自动帮您下载并安装 IDE,超神速!

安装好的 IDE 会自动整理在 Toolbox App 面板的上方,点选後就可以开启指定的 IDE。安装完首次启动时会询问想要使用的 IDE 布景主题…等,依照自己的需求设定完成即可。

同场加映:安装 Kotest Plugin

我们在後续的章节里会带着大家用 Kotlin 的一个测试框架 Kotest 来写测试,为了方便在 IDE 里执行测试、看测试结果、算覆盖率,我们需要在 IntelliJ IDEA 里安装 Kotest Plugin

在启动 IntelliJ IDEA 後的欢迎页面上,点选左边的 Plugin 页签,切换上方的页签到 Marketplace,并在搜寻框架打「kotest」,找到後点 Install 安装即可。

同场加映:安装 Toolbox Extension

另一个想推荐大家安装的是 Toolbox Extension。身为一个专业的 Copy-Paste 开发者,笔者最厉害的技能就是到 GitHub Clone Repository 回来参(ㄉㄠˋ)考(ㄩㄥˋ)。但就算这个动作做再多次,还是至少得花上打开浏览器、在 GitHub 上搜寻、取得 Repo 位址、在 IntelliJ IDEA 贴上网址後建立专案等数个步骤。

你迟早会想要偷懒的,何不一开始就懒到底?

Toolbox Extension 是 JetBrains Toolbox App 在 Google ChromeFirefox 浏览器上的外挂,功能是当您的浏览器安装好这个外挂後(请直接点连结到对应的浏览器 Store 安装),每当您浏览 GitHub Repo 时,Toolbox Extension 就会自动分析这个 Repo 用到的程序语言有哪些,然後自动在页面上增加对应 IDE 的按钮。当按下 IDE 的按钮时,浏览器就会呼叫 Toolbox App 开启对应 IDE,并把 Repo URL 直接填入,您只需要点选 OK,建立专案的动作从头到尾 2 步就完成了!

这麽省时的工具,您说怎麽能不装呢?

参考资料


<<:  IOS、Python自学心得30天 Day-10 模组训练改善-2

>>:  【D13】取得:加权指数历史资料,并观察量与指数的关系

Day 21 : pillow套件,处理照片

在python中,有许多可以拿来处理影像的套件。今天就先稍微介绍一下,pillow这个影像处理套件。...

Day29 自动合成物品的小乌龟与指令

上次已经玩过挖矿龟 Mining Turtle,此外还有其他几个类似的小乌龟 包括 Digging ...

day9 Kotlin coroutine 的黑魔法 suspend

suspend他并不能切换线程,切换线程的是内部自带的suspend函数,ex. withConte...

【Day20】 WavenetGan, BidirectionalLSTMGAN, WaveGan 钢琴音乐生成

因为之後想花一点时间分享一下 Transformer 阅读跟实作的经验,所以这篇就没写 Trans...

拥抱「资料结构」的「演算法」(28) - 深度优先与广度优先搜寻法

前言 图形也有搜寻演算法可以使用,例如深度优先搜寻法与广度深度优先搜寻法,一起来看看吧 生活常识 你...