Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gradleまなびなおし

 Gradleまなびなおし

■ イベント
After Kotlin Fest 2024 LT Night
https://sansan.connpass.com/event/320810/

■ 発表者
Bill One Engineering Unit
江川 綾

■ Bill One 開発エンジニア 採用情報
https://media.sansan-engineering.com/billone-engineer

SansanTech

July 08, 2024
Tweet

More Decks by SansanTech

Other Decks in Technology

Transcript

  1. 写真が入ります 江川 綾 Sansan株式会社 技術本部 Bill One Engineering Unit 2021年

    Sansan新卒⼊社。 ⼊社以来、Webアプリケーション開発エンジニアとして インボイス管理サービス「Bill One」の開発に従事。 現在は、Bill Oneにおける請求書受領領域の開発に加えて、 フロントエンドの技術的な改善をリードしている。 @erm1116_ @erm1116
  2. “Gradle Build Tool is a fast, dependable, and adaptable open-source

    build automation tool with an elegant and extensible declarative build language.” Gradle User Manual - オープンソースのビルド⾃動化ツール - JVM系の⾔語(Java, Kotlinなど)のビルドツールとして利⽤される - プラグインシステムが充実しており、任意のビルドフローを構築できる - 設定ファイルをKotlin DSL / Groovy DSLにて記述できる - インクリメンタルビルド、ビルドキャッシュ、並列実⾏などにより ビルドを⾼速化できる Gradleとは
  3. Gradleの基本的な概念 - Projects - Build Scripts - Dependency Management -

    プロジェクトにおける外部への依存を管理する - 依存とはプラグイン・ライブラリなどのことを指す - Version Catalogを利⽤してマルチモジュール構成や パッケージ間のバージョン同期などの管理を実現しやすくする - Tasks - Plugins
  4. Gradleの基本的な概念 - Projects - Build Scripts - Dependency Management -

    Tasks - コンパイル、テスト、ビルドなどの実⾏単位 - 各プロジェクトにおいてはプラグインを利⽤するか、⾃⾝でタスクの定義を ⾏うなどする - Plugins
  5. Gradleの基本的な概念 - Projects - Build Scripts - Dependency Management -

    Tasks - Plugins - プロジェクトに任意のタスクを組み込むことができる - 例) - `application` : アプリケーションの起動 (run) タスクなどを組み込める - `detekt` : detektを⽤いた静的解析タスクを組み込める
  6. 3つのフェーズに分けて実⾏される 1. Initialization - settings.gradle(.kts)の特定 → Settings インスタンスを作成 - ビルド対象となるプロジェクトの特定

    → Projectインスタンスを作成 1. Configuration - Projectにおけるビルドスクリプト(build.gradle(.kts))の評価 → タスクの依存グラフを構築 1. Execution - 依存グラフに則り、並列でタスク実⾏ Gradleのビルドライフサイクル
  7. buildタスク⾃体は Base プラグイン にて登録されている ここに Java Plugin や Kotlin JVM

    Plugin が必要なタスクを追加することで ビルドを実現している buildタスクを理解する Java Pluginによるタスクの依存グラフ(The Java Plugin)