ビルドツール
Gradle Kotlin DSLとは何か よく言われるメリット 「初心者向き」と言われる理由を分解する IDE補完が効く安心感 Kotlinという安心材料 実際に書いてみるとどうなるか なぜ関数呼び出しのように見えるのか 初心者がつまずきやすいポイント エラーメッセージ…
Gradleで設定ミスが起きやすい理由 build.gradleに書いた設定が効いていない よくある勘違い なぜ起きるのか 回避の考え方 afterEvaluateの使いすぎ 便利だが危険なafterEvaluate 実際に起きがちな問題 どう考えるべきか サブプロジェクト設定のコピペ地獄 a…
Gradleが高速と言われる最大の理由 インクリメンタルビルドが効く理由 ビルドキャッシュがもたらす現実的な速さ 設定フェーズと実行フェーズの分離 並列実行とマルチプロジェクトの強さ 実際にやると分かる「速さの正体」 高速さを殺してしまう失敗例 Gradle…
Gradleのbuild.gradleとは何者なのか build.gradleでよく見る基本構造 pluginsブロック group と version repositoriesブロック dependenciesブロック build.gradleが分かりにくくなる理由 実務でよくあるbuild.gradleの失敗例 設定の重複 依存関係のバージ…
Gradleが目指したビルドツール像 なぜGroovyだったのか Groovy DSLの強みと弱み Kotlin DSLは何を解決しようとしたのか それでもGroovy DSLが消えない理由 実際にやるとこうなる:移行時の落とし穴 GradleがDSLを選び続ける理由 向いている人・向いていない…
MavenでBOM(Bill of Materials)とは何か なぜMavenでBOMを使う理由が生まれたのか 依存関係の数は必ず増える transitive dependencyの存在 BOMを使うと何が変わるのか pom.xmlが読みやすくなる バージョン衝突を事前に抑えやすい 複数モジュールでの統一が…
Gradleビルドが速いと言われる本当の理由 インクリメンタルビルドという前提 タスクグラフによる最適化 ビルドキャッシュの存在 実際にやるとこうなる:速くなるケース CIビルドが安定して速くなった例 ローカル開発のフィードバックが改善した例 Gradleビル…
Mavenのバージョン競合とは何か Mavenはどうやってバージョンを決めているのか 具体例:nearestが招く意外な結果 なぜMavenは自動で解決してくれないのか 実際に起きがちなトラブル dependency:treeを見ずに進む危険性 dependencyManagementが重要な理由 exc…
「とりあえずMaven」が選ばれ続ける背景 Mavenの基本構造が「困りにくさ」を作っている pom.xmlに集約される設定 ディレクトリ構成がほぼ固定 依存関係管理でハマりにくい理由 中央リポジトリの存在 依存関係の解決ルールが明確 実務でよくある「Mavenで助か…
MavenとGradleの基本的な違い Mavenは「決まりごと重視」のビルドツール Gradleは「柔軟性と表現力」を重視する 実際に使うと感じる違い ビルド速度と開発体験 設定ファイルの読みやすさ Mavenを選ぶときに向いているケース Gradleを選ぶときに向いているケ…
Gradleとは何かをざっくり理解する なぜGradleが登場したのか Gradleで何ができるのか build.gradleの正体 Gradleが速いと言われる理由 実際に使うとこうなる 失敗しがちなポイント 向いているケース・そうでないケース 注意点とリスク 結局どうすればいいか…
Apache Mavenとは何者か Apache Mavenが生まれた背景 Mavenの中核にある考え方 規約より設定(Convention over Configuration) 宣言的な依存関係管理 pom.xmlは何をしているファイルなのか Mavenのビルドライフサイクルを理解する 実際の現場でMavenを使う…