第十一天:学习 Gradle 的第一个指令 - init

花了这麽多时间搞清楚 Gradle 的各种安装方式,接下来就要开始学习使用 Gradle 指令。今天先来搞清楚初始化专案的指令 init,也比对一下用 IntelliJ IDEA 建出来的专案跟从终端机用 Gradle 建立的有什麽不一样?

我们後续会用 IntelliJ IDEA 来编辑程序码,所以我建议把这些练习用的专案资料夹直接建立在 IDE 的 Workspace 下,也就是 ~/IdeaWorkspace。在练习前别忘了先建立专案资料夹并把工作目录切换过去:

$ cd ~/IdeaWorkspace
$ mkdir gradle-practice
$ cd gradle-practice

注:gradle-practice 是预想的专案名称,您可以依照自己的喜好改成其他的名字。

gradle init 建立专案

要使用 Gradle 来建立专案,在工作目录呼叫 gradle init 指令即可:

$ gradle init
Starting a Gradle Daemon (subsequent builds will be faster)

Select type of project to generate:
  1: basic
  2: application
  3: library
  4: Gradle plugin
Enter selection (default: basic) [1..4]

互动问答的第一步会问专案类型,我们这边先选 2: application 来产生一个应用程序专案。

Select implementation language:
  1: C++
  2: Groovy
  3: Java
  4: Kotlin
  5: Scala
  6: Swift
Enter selection (default: Java) [1..6]

问答的第二步会问专案要使用的程序语言,这边请选 4: Kotlin,後续都会以 Kotlin 为示范语言。

Split functionality across multiple subprojects?:
  1: no - only one application project
  2: yes - application and library projects

第三步问有没有子专案?目前我们先保持单纯,选 1: no 即可。

Select build script DSL:
  1: Groovy
  2: Kotlin

第四步问到 Gradle Build Script 要使用的 DSL 语言,当然还是选 2: Kotlin 罗!

Project name (default: gradle-practice):

第五步会让我们设定专案的名称,预设会用我们刚刚设定的资料夹名称,後续若不满意还可以改,所以先保持预设即可。

Source package (default: demo):

第六步的 Source package 也维持预设就好。

> Task :init
Get more help with your project: https://docs.gradle.org/7.2/samples/sample_building_kotlin_applications.html

BUILD SUCCESSFUL in 5m 9s
2 actionable tasks: 2 executed

完成以上步骤後,Gradle 就会将专案基本架构建立完成!您可以看到专案结构应该长得像这样:

├── app
│   ├── build.gradle.kts
│   └── src
│       ├── main
│       │   ├── kotlin
│       │   │   └── demo
│       │   │       └── App.kt
│       │   └── resources
│       └── test
│           ├── kotlin
│           │   └── demo
│           │       └── AppTest.kt
│           └── resources
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle.kts

比对用 IntelliJ IDEA 建立专案

在学习用 Gradle 指令前,笔者都是用 IntelliJ IDEA 建立专案的,实在很好奇这之间的差异在哪?在这边也做个实验纪录一下。

首先用 JetBrains Toolbox App 开启 IntelliJ IDEA,在欢迎画面点选 New Project 建立新专案,IntelliJ IDEA 会在左边列出一系列的专案样板供选择,请先选择「Kotlin」。

接着在右边自行设定喜欢的专案名称及放置路径。因为 Kotlin 可以做各式各样的事情,所以 IntelliJ IDEA 也准备了一系列的 Kotlin 专案样板供选择,我们的案例比较单纯,直接选 JVM 区段的 Application 即可。在 Build System 的部份,我会使用 Gradle Kotlin,意思是以 Kotlin DSL 写 Gradle Script。Project SDK 可以选择你在前面几天安装的 JDK 版本,或是像我一样选择 JDK 11。

在 Artifact Coordinates 的部份,可以依照你的需求设定 Group ID、Artifact ID 及 Version。我个人习惯将我自己的网址设定在 Group ID 上,不过做为练习的话,维持预设值也是没关系的。全部都设定好後就按 Next 进到下一步。

在下一个画面可以设定专案用到的 Module,以这个测试来说维持预设即可。旁边的 Template 选择 None,Test Framework 我们先暂时选 JUnit 5,Target JVM version 请选择跟上一步一样的 JDK 版本。

完成後按 Finish,IntelliJ IDEA 就会帮您把整个专案用内建的 Gradle 建立起来,专案结构会长得像这样:

├── build.gradle.kts
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── settings.gradle.kts
└── src
    ├── main
    │   ├── kotlin
    │   └── resources
    └── test
        ├── kotlin
        └── resources

经过比对後,有 2 个地方不同:

  1. init 指令会把 Application 放在 app 资料夹底下,里面会放对应的 srcbuild.gradle.kts,在专案根目录的 settings.gradle.kts 里会将 app 资料夹以 include("app") 方式引入。
  2. IntelliJ IDEA 建立的专案根目录会多一个 gradle.properties,目前纪录着 Code Style 的设定。

小结

虽然今天示范 2 种建立专案的方式产生出来结构稍有不同,但可以看得出来在架构上大同小异,後续会再深入介绍其中设定值的作法及差别。接下来会先把重心放在了解 build.gradle.kts 里的内容。

另外提醒一下,在这边使用的 Gradle 是安装到您本机的 Gradle,而不是 Gradle Wrapper 喔!这个情境就是我们前面提到唯一会使用本机 Gradle 的状况。


<<:  Chapter2 - Canvas动画(III)让我们跳过微积分 用轻松的方式画落叶吧

>>:  [Day8] Git学习笔记 -RE篇(MacOS)

I Want To Know React - Context 范例 & 使用技巧

回顾 Context 语法 在上一章节中,我们介绍了 Context 的使用简介与语法。 React...

2021 — 找工作 (上)

原本是计画要2020换工作,结果因为疫情的关系打算延後了一年在开始投履历跟面试~ 时间线 2021 ...

[LeetCode30] Day30 - END

教授说12点前要看到实验结果,但我组长看我不先发文,也想把我杀了,人真难做,我只好先来发文QQ 心得...

DAY 20 制作 Nav Bar - Scrollbar

预设时会是使用浏览器定义的 Scrollbar,不过 vogue 有在修改过样式,所以我们也要跟着改...

DAY 9- 《区块密码2》AES(1)- 加密过程

"AES, ACE, ASS, AIDS(喂)" --- 现今最广泛使用的对称式...