Gradle
Javaのビルドが遅いと感じる瞬間 Javaという言語は本当に遅いのか MavenやGradleは悪者なのか アノテーション地獄がビルドを重くする テスト設計が最大のボトルネックになる モジュール分割と依存関係の問題 CI環境が足を引っ張るケース 実際に改善するとど…
Gradle Kotlin DSLとは何か よく言われるメリット 「初心者向き」と言われる理由を分解する IDE補完が効く安心感 Kotlinという安心材料 実際に書いてみるとどうなるか なぜ関数呼び出しのように見えるのか 初心者がつまずきやすいポイント エラーメッセージ…
Gradleで設定ミスが起きやすい理由 build.gradleに書いた設定が効いていない よくある勘違い なぜ起きるのか 回避の考え方 afterEvaluateの使いすぎ 便利だが危険なafterEvaluate 実際に起きがちな問題 どう考えるべきか サブプロジェクト設定のコピペ地獄 a…
Gradleが高速と言われる最大の理由 インクリメンタルビルドが効く理由 ビルドキャッシュがもたらす現実的な速さ 設定フェーズと実行フェーズの分離 並列実行とマルチプロジェクトの強さ 実際にやると分かる「速さの正体」 高速さを殺してしまう失敗例 Gradle…
GradleとMavenの依存解決をざっくり比較 Mavenの依存解決の特徴 依存関係は基本的に固定的 dependencyManagementによる中央管理 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を選び続ける理由 向いている人・向いていない…
フロントエンドとJavaで依存管理が違って見える理由 npm的な感覚で考えると混乱しやすい点 Java依存管理の核心:推移的依存関係 Mavenでの具体例 lockファイルがないことへの不安 実際に現場で起きやすいトラブル ビルドは通るが実行時に落ちる バージョンを…
lockファイルがないJavaは本当に不安なのか なぜJavaにはlockファイル文化が根付かなかったのか 中央集権的なリポジトリの存在 バージョン解決ルールがツール側で安定している 実際にやるとどうなるのか:現場でのリアル 何も指定しないと「じわっと壊れる」…
Gradleビルドが速いと言われる本当の理由 インクリメンタルビルドという前提 タスクグラフによる最適化 ビルドキャッシュの存在 実際にやるとこうなる:速くなるケース CIビルドが安定して速くなった例 ローカル開発のフィードバックが改善した例 Gradleビル…
Maven Centralとは何か なぜMaven Centralが生まれたのか 実際にやるとこうなる:依存関係解決の裏側 Maven Centralと他のリポジトリの違い 失敗しがちなポイント セキュリティと信頼の話 Maven Centralが向いているケース 向いていない、または注意が必要な…
Javaの依存関係とは何かを初心者向けに整理する 依存関係という言葉が分かりにくい理由 Javaは「クラス単位」ではなく「ライブラリ単位」で依存する MavenやGradleで混乱しがちなポイント pom.xmlやbuild.gradleは何をしているのか バージョン指定の意味を理…
MavenとGradleの基本的な違い Mavenは「決まりごと重視」のビルドツール Gradleは「柔軟性と表現力」を重視する 実際に使うと感じる違い ビルド速度と開発体験 設定ファイルの読みやすさ Mavenを選ぶときに向いているケース Gradleを選ぶときに向いているケ…
Gradleとは何かをざっくり理解する なぜGradleが登場したのか Gradleで何ができるのか build.gradleの正体 Gradleが速いと言われる理由 実際に使うとこうなる 失敗しがちなポイント 向いているケース・そうでないケース 注意点とリスク 結局どうすればいいか…
Java初期にパッケージ管理ツールがなかった理由 JAR地獄と呼ばれた時代 Antの登場と限界 Mavenがもたらした転換点 Gradleの登場と柔軟性 Javaにおけるパッケージ管理の注意点 結局どうすればいいのか Javaの開発現場では、今やMavenやGradleといったパッケー…
Javaとパッケージ管理の関係が深い理由 標準ライブラリだけでは足りない現実 ライブラリ同士も依存している パッケージ管理をしないと何が起きるのか クラスパス地獄に陥る 環境差分が原因のバグが増える パッケージ管理ツールが解決すること 依存関係を宣言…
Javaのパッケージ管理とは何か jarファイルそのもの 依存関係の依存関係 バージョン管理で何が起きているのか なぜバージョン固定が必要なのか 曖昧な指定が招く問題 ビルド管理との関係 コンパイル時と実行時の違い 成果物の形を決める 実際にやるとこうな…