iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0
Software Development

Gradle 通靈術系列 第 23

第二十三天:再探 Gradle Plugin

今天要繼續撰寫 Gradle Plugin,我們會延續昨天的範例 - 檔案差異比對 Plugin。

建立專案結構

首先我們先來建立一個 Gradle Plugin 的專案結構,並初始化版本管理系統。

$ mkdir file-diff-plugin
$ cd file-diff-plugin
$ git init
$ gradle init

別忘了在專案根目錄新增 .gitignore,把會自動產生、不需要加到版本管理的檔案排除掉。

/.gradle
/.idea
/build

建立 Build Script

緊接著我們先將 Build Script 設定好。

plugins {
    id 'groovy'
    id 'java-gradle-plugin'
}
group = 'com.tomgregory'
version = '0.0.1-SNAPSHOT'
repositories {
    mavenCentral()
}
dependencies {
    testImplementation 'org.spockframework:spock-core:2.0-groovy-3.0'
}
gradlePlugin {
    plugins {
        fileDiff {
            id = 'com.tomgregory.file-diff'
            implementationClass = 'com.tomgregory.plugins.filediff.FileDiffPlugin'
        }
    }
}
test {
    useJUnitPlatform()
}

目前的 Build Script 包括:

  • Groovy Plugin:撰寫 Plugin 時要用的語言(也可以用 Java 或 Kotlin 開發)
  • java-gradle-plugin:為了 Plugin 開發需要設定各種設定檔而需要的 Plugin
  • Spock 測試框架:為了要使用 Give-When-Then 這種 BDD 風格的測試,在這邊使用 Spock 測試框架
  • Gradle Plugin 設定:設定 Pluguin ID 為 com.tomgregory.file-diff,這將用於測試及發佈時做為 Plugin 的唯一值
  • Gradle 測試設定:Spock 版本使用最新版本的 JUnit 5,我們用 useJUnitPlatform() 在 Gradle 裡設定

上一篇
第二十二天:試寫 Gradle Plugin
下一篇
第二十四天:三探 Gradle Plugin
系列文
Gradle 通靈術24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言