0Pricing
Java Academy · レッスン

Maven プラグインとゴール

ビルドをカスタマイズします。

「Maven プラグインとゴール」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全4レッスンが含まれています。

Mavenのプラグインとゴール

Maven本体はほとんど何もしません。実際の処理はすべてプラグインが担います。プラグインはゴールを提供し、ゴールはライフサイクルのフェーズに関連付けられます。このレッスンでは、プラグインによってビルドをカスタマイズする方法を説明します。

プラグインとゴールの違い

プラグインは、関連する機能をまとめたパッケージです。ゴールは、プラグイン内の具体的な1つのタスクです。たとえばCompiler Pluginは、compileゴールとtestCompileゴールを提供します。

ゴールの座標

ゴールはplugin:goalとして直接呼び出せます。たとえばmvn compiler:compileやmvn surefire:testです。通常、ゴールはフェーズに関連付けられているため自動的に実行されます。

フェーズへのバインディング

デフォルトのパッケージングタイプでは、標準プラグインがフェーズにあらかじめ関連付けられています。jarプロジェクトでは、Compiler Pluginのcompileゴールがcompileフェーズに、Surefire Pluginのtestゴールがtestフェーズに関連付けられています。そのため、mvn testを実行するだけで動作します。

コンパイラの設定

プラグインは<build><plugins>の中で設定します。ここではJavaのリリースレベルを指定し、コンパイラが特定のバージョンを対象にするよう設定します。

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.13.0</version>
      <configuration>
        <release>21</release>
      </configuration>
    </plugin>
  </plugins>
</build>

Surefire Plugin

Surefireはtestフェーズで単体テストを実行します。実行するテスト、並列実行、JVM引数を設定できます。兄弟プラグインのFailsafeは、verifyフェーズで統合テストを実行します。

追加の実行の関連付け

<execution>ブロックを使うと、ゴールをフェーズに明示的に関連付けられます。必要に応じて、その実行専用の設定も指定できます。コンパイル前のコード生成など、追加の処理を組み込むときに使用します。

<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <executions>
    <execution>
      <id>print-banner</id>
      <phase>generate-sources</phase>
      <goals><goal>run</goal></goals>
    </execution>
  </executions>
</plugin>

Fat JARのビルド

デフォルトのJARには依存関係が含まれません。Shadeプラグイン(またはAssemblyプラグイン)を使うと、すべてを1つの実行可能なuber-jarにまとめられます。そのゴールをpackageフェーズに関連付けます。

Exec Plugin

Execプラグインを使うと、mvn exec:javaでメインクラスを指定して、Mavenからアプリケーションを実行できます。パッケージ化せずにすぐ実行したいときに便利です。

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <configuration>
    <mainClass>com.example.App</mainClass>
  </configuration>
</plugin>

プラグイン管理

マルチモジュールビルドでは、親POMの<pluginManagement>でプラグインのバージョンと共有設定を固定できます。子モジュールはバージョンを繰り返し記述せずにプラグインを参照できるため、ビルドの一貫性を保てます。

設定の確認

mvn help:describe -Dplugin=compilerを使うと、プラグインのゴールとパラメータを一覧表示できます。ターミナルを離れずに、プラグインが提供する設定項目を知る最も早い方法です。

クイックチェック

プラグインとゴールについての理解度を確認しましょう。

まとめ

Mavenのプラグインの仕組みを学びました。

  • 実際のビルド処理はすべてプラグインが担い、プラグインはゴールを提供します。
  • ゴールはライフサイクルのフェーズに関連付けられているため、標準のフェーズを実行するだけで動作します。
  • <build><plugins>でプラグインを設定し、追加の関連付けにはexecutionを追加します。
  • Shade/AssemblyはFat JARをビルドし、Execはアプリを実行し、Surefire/Failsafeはテストを実行します。
  • mvn help:describeでプラグインのゴールとパラメータを確認できます。

よくある質問

「Maven プラグインとゴール」レッスンは無料ですか?

はい。「Maven プラグインとゴール」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全4レッスンが含まれています。

「Maven プラグインとゴール」で何を学びますか?

ビルドをカスタマイズします。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Java Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「Maven プラグインとゴール」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJava Academyレッスンでコードを書いて実行できますか?

はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Maven プロジェクト構成
  2. Maven プラグインとゴール
  3. Gradle の基礎
  4. ビルドツールの選択
← Java Academyに戻る