タイトル: プロジェクト管理(プログラム)
当記事はプロジェクト管理のソフトウェア(プログラム)に関する記事です。ビルド管理、依存解決、パッケージング、リリース等、プログラム開発で必要となるプロジェクト管理ツールを扱います。
※グループウェアのプロジェクト管理ソフトウェアはこちら。
子ページからソフトウェアを選択してください。
本ページの子ページ
- maven — Javaの標準的なビルド・依存管理ツール
プログラム用プロジェクト管理ツールの種類
| 言語・対象 | 主なツール |
|---|---|
| Java | Maven、Gradle、Ant |
| JavaScript / TypeScript | npm、yarn、pnpm |
| PHP | Composer |
| Python | pip、poetry、pipenv、conda |
| Ruby | RubyGems、bundler |
| Go | Go Modules(標準) |
| Rust | Cargo(標準) |
| C/C++ | CMake、Meson、Conan、vcpkg |
| .NET / C# | NuGet、MSBuild |
| iOS | CocoaPods、Swift Package Manager、Carthage |
| Android | Gradle(Maven Central利用) |
プロジェクト管理ツールが担う主な機能
- 依存解決 — 必要なライブラリを自動でダウンロード・解決
- ビルド — ソースから配布可能な成果物(.jar / .whl / .nupkg等)を生成
- テスト実行 — ユニットテストを統合的に
- パッケージ公開 — 公開リポジトリ(Maven Central / npm registry / PyPI 等)への登録
- バージョン管理 — セマンティックバージョニング
- CI/CD連携 — GitHub Actions / Jenkins 等
典型的なプロジェクト構成
| 言語 | 設定ファイル名 | 依存記述 |
|---|---|---|
| Java (Maven) | pom.xml | XML |
| Java (Gradle) | build.gradle / build.gradle.kts | Groovy/Kotlin DSL |
| JavaScript | package.json | JSON |
| PHP | composer.json | JSON |
| Python | pyproject.toml / requirements.txt | TOML / テキスト |
| Ruby | Gemfile | Ruby DSL |
| Go | go.mod | Go固有形式 |
| Rust | Cargo.toml | TOML |
選定の観点
- 言語の標準慣習に従う(npmならpackage.json、Pythonならpip/poetry)
- エコシステムの大きさ: パッケージ数、コミュニティ
- ビルド速度・キャッシュ効率
- CI/CDとの相性
- モノレポ対応: pnpm、Yarn Workspaces、Bazel等
- ロックファイル: 再現性のあるビルドのために必須
運用上のポイント
- ロックファイル(package-lock.json、Gemfile.lock等)をコミットする
- 依存ライブラリの脆弱性チェック: npm audit、composer audit等を定期実行
- セマンティックバージョニング:
^1.2.3等の指定範囲を理解する - private registryを使う場合は認証情報の管理に注意
関連
- 親カテゴリ: ソフトウェア
- グループウェア版: プロジェクト管理(グループウェア)
- Maven: maven
- バージョン管理: バージョン管理