【めいぶんせんとらる】

Maven Central とは?

💡 Javaライブラリの「公式図書館」、必要な本がすべて揃っている
📌 このページのポイント
Maven Central — Javaライブラリの公式リポジトリ Maven Central (Sonatype運営) Spring, Hibernate Jackson, Guava … 数十万のライブラリ groupId:artifactId:version Maven pom.xml で依存指定 Gradle build.gradle で指定 依存解決 ライブラリ開発者 審査後に公開 publish 他言語の同種リポジトリ npm(JS) PyPI(Python) Maven Central NuGet(.NET)
Maven Central:MavenやGradleがデフォルトで参照するJavaのパッケージレジストリ
ひよこ ひよこ

Maven Centralって何?Mavenとは別物なの?

ペンギン先生 ペンギン先生

Mavenはビルドツールで、Maven Centralはそこで使うライブラリを置いておく「倉庫」のようなものだよ。JavaScriptnpmパッケージレジストリに相当するものだと思えばわかりやすいね。

ひよこ ひよこ

ライブラリを使いたいときはどこかに書くだけでダウンロードされるの?

ペンギン先生 ペンギン先生

その通り!Mavenならpom.xml、GradleならBuild.gradleに依存関係を書けば、ビルド時に自動でMaven Centralから必要なライブラリをダウンロードしてきてくれるんだ。手動でJARファイルを探してコピーする必要がないよ。

ひよこ ひよこ

どれくらいのライブラリがあるの?

ペンギン先生 ペンギン先生

数十万のアーティファクト(ライブラリ)が登録されていて、SpringやHibernate、Jackson、Guavaなど主要なJavaライブラリはほぼすべて揃っているよ。Spring Bootのような人気フレームワークも当然Maven Centralで配布されているんだ。

ひよこ ひよこ

自分でライブラリを公開することもできるの?

ペンギン先生 ペンギン先生

できるよ!ただし公開するにはSonatypeのアカウントを作ってレビューを通過する必要があるんだ。groupIdはドメインの逆順(com.exampleのような形)で書くのが慣習で、自分が所有するドメインか確認される。品質管理のために審査があるんだよ。

ひよこ ひよこ

セキュリティ的に危ないライブラリが公開されることはないの?

ペンギン先生 ペンギン先生

完全ではないけど、Maven Centralは審査プロセスがあるぶんnpmよりは管理されているよ。ただ2021年にLog4Shellという重大な脆弱性がLog4j(Maven Centralで広く使われるライブラリ)で見つかったように、リポジトリを信頼しすぎず依存ライブラリバージョン管理やセキュリティスキャンは欠かせないんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
Maven Central」って出てきたら「Javaライブラリをダウンロードするnpmのような公式リポジトリ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Maven Central Repository」 = Mavenセントラルリポジトリ
💬 Mavenはイディッシュ語で「知識の蓄積者・専門家」を意味し、Centralは「中央の」という意味だよ。Javaの依存ライブラリを中央で一元管理するという役割をそのまま名前にしたんだよ。
← 用語集にもどる