Maven プロジェクト構成
POM、ライフサイクル、依存関係です。
「Maven プロジェクト構成」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全4レッスンが含まれています。
Mavenプロジェクトの構成
Mavenは、1つの原則、設定より規約を中心に構築されたビルドツール兼依存関係管理ツールです。標準レイアウトに従えば、ほとんど設定しなくても多くのことが機能します。このレッスンでは、レイアウト、POM、依存関係管理について説明します。
標準ディレクトリレイアウト
Mavenでは、固定された構成が想定されています。
src/main/java— 本番用ソースコードsrc/main/resources— 本番用リソースsrc/test/java— テスト用ソースコードtarget/— ビルド出力(生成物)
POM
Mavenプロジェクトの中核はpom.xml、つまりプロジェクトオブジェクトモデルです。XMLで座標、依存関係、プラグイン、ビルド設定を宣言します。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
</project>座標: GAV
すべてのアーティファクトは、groupId、artifactId、version(GAV)によって識別されます。この座標によって、プロジェクトと追加するすべての依存関係に一意の名前を付けられます。
依存関係の宣言
依存関係は<dependencies>の中に記述します。Mavenは、依存関係とその推移的依存関係を、Maven Centralなどのリポジトリからローカルキャッシュにダウンロードします。
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
</dependencies>依存関係のスコープ
スコープは、依存関係がクラスパス上に存在するタイミングを制御します。
- compile — 常に利用可能(デフォルト)
- provided — コンパイル時のみ。実行時にはコンテナから提供されます。
- runtime — 実行時とテスト時に利用可能。コンパイル時には利用できません。
- test — テストのコンパイルと実行時のみ
推移的依存関係
AがBに依存し、BがCに依存している場合、MavenはCを自動的に提供します。これが推移性です。バージョンが競合した場合、Mavenは依存関係ツリー内の最も近い定義によって解決します。
ビルドライフサイクル
Mavenは、順序付けられたライフサイクルのフェーズを定義します。デフォルトライフサイクルには、次のフェーズが順番に含まれます。validate、compile、test、package、verify、install、deploy。あるフェーズを実行すると、それ以前のすべてのフェーズも実行されます。
よく使うコマンド
mvn compile— メインソースをコンパイルします。mvn test— 単体テストを実行します。mvn package— JAR/WARをビルドしてtarget/に出力します。mvn install— 他のプロジェクトから利用できるよう、アーティファクトをローカルリポジトリにコピーします。
ローカルリポジトリ
ダウンロードしたアーティファクトは~/.m2/repositoryにキャッシュされます。以降のビルドでは再ダウンロードせず、このキャッシュを再利用します。mvn installを実行すると、自分で作成したアーティファクトもそこに配置されるため、兄弟プロジェクトから依存できます。
マルチモジュールプロジェクト
<packaging>pom</packaging>を持つ親POMには、子の<modules>を列挙できます。Mavenは依存関係の順序に従ってビルドするため、大規模なシステムでも設定やバージョンを1か所で共有できます。
クイックチェック
Mavenの構成についての理解度を確認しましょう。
まとめ
Mavenの基礎を学びました。
- 標準の
src/main/javaレイアウトに基づく設定より規約 - POMでGAV座標、依存関係、プラグインを宣言します。
- スコープ(compile、provided、runtime、test)でクラスパス上の可視性を制御します。
- 依存関係は推移的であり、競合は最も近い定義によって解決されます。
- 順序付けられたライフサイクルにより、あるフェーズを実行すると、それ以前のすべてのフェーズも実行されます。
よくある質問
「Maven プロジェクト構成」レッスンは無料ですか?
はい。「Maven プロジェクト構成」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全4レッスンが含まれています。
「Maven プロジェクト構成」で何を学びますか?
POM、ライフサイクル、依存関係です。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Maven プロジェクト構成」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Maven プロジェクト構成
- Maven プラグインとゴール
- Gradle の基礎
- ビルドツールの選択