0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gradleビルド実行後、何が行われるか?

Posted at

Gradleでビルドを実行した際には、複数のタスクが自動的に処理され、最終的に成果物(アプリケーションやライブラリ)が生成されます。以下では、Gradleビルドの基本的な流れと、それぞれのステップで何が起きるのかを説明します。

1. Gradleビルドの基本ステップ

Gradleのビルドは、通常、以下の3つのフェーズを経て進行します。

  1. Initialization(初期化)フェーズ
  2. Configuration(設定)フェーズ
  3. Execution(実行)フェーズ

1. Initializationフェーズ(初期化フェーズ)

このフェーズでは、Gradleがプロジェクトの設定を読み込み、どのプロジェクトがビルドに含まれるかを決定します。プロジェクトがシングルプロジェクトなのか、マルチプロジェクトなのかもここで判定されます。

主な処理:

  • settings.gradle ファイルが読み込まれ、どのプロジェクトが参加するかが判断されます。
  • マルチプロジェクト構成の場合は、すべてのプロジェクトが識別されます。

2. Configurationフェーズ(設定フェーズ)

Gradleはビルドスクリプト(build.gradle)を評価し、どのタスクが必要か、どの順序で実行するかを決定します。タスクの依存関係が解決され、この時点で実際のビルドプロセスに向けた準備が整います。

主な処理:

  • build.gradle ファイルを解析し、どのプラグインが使用されているか、どのタスクが定義されているかを決定します。
  • 必要な外部依存関係が解析され、Gradleが自動的にライブラリをダウンロードすることがあります(通常は repositories ブロックで指定された場所から)。
  • タスクの依存関係が設定され、どの順序でタスクが実行されるかが決まります。

3. Executionフェーズ(実行フェーズ)

このフェーズでは、設定されたタスクが実際に実行されます。build タスクなど、特定の目標に向けて一連のタスクが順次実行されます。

主な処理:

  • 各タスクが依存関係に従って実行されます。例えば、コンパイルタスクの前に、必要に応じてクリーンタスクが実行されることがあります。
  • ビルドの実行中には、以下のような一般的なタスクが順番に実行されます:
    • clean: 以前のビルド成果物(build/ディレクトリ内のファイル)を削除します。
    • compileJava: ソースコード(src/main/java)をコンパイルし、クラスファイルを生成します。
    • processResources: リソースファイル(src/main/resources)を処理して、クラスファイルと一緒に出力フォルダにコピーします。
    • classes: コンパイルされたクラスファイルとリソースを build/classes/java/main/ に出力します。
    • jar: クラスファイルやリソースをまとめて、最終的な JAR ファイルを生成します(build/libs/ディレクトリに配置)。
    • test: 単体テストがある場合、テストクラスを実行して結果を生成します(build/reports/tests にテストレポートが出力されます)。

ビルド後に何が生成されるか

  1. コンパイル結果:

    • Javaのソースコードがコンパイルされ、build/classes/java/main/ フォルダに .class ファイルとして出力されます。
  2. 成果物の生成:

    • build/libs/ フォルダに、JAR ファイルまたは WAR ファイルなどの成果物が生成されます(プロジェクトによる)。
  3. テスト結果:

    • build/reports/tests/ フォルダに、テストの結果がレポートとして保存されます。成功したテストや失敗したテストの詳細なレポートが含まれます。
  4. 依存関係のダウンロード:

    • 外部ライブラリがまだローカルにキャッシュされていない場合、Gradleがそれらをリモートリポジトリ(例:Maven Central)からダウンロードし、~/.gradle/caches/ にキャッシュします。

ビルドが成功すると

ビルドが成功すると、以下のメッセージが表示されます。

BUILD SUCCESSFUL in 3s
3 actionable tasks: 3 executed
  • BUILD SUCCESSFUL: ビルドが成功したことを示します。
  • 3 actionable tasks: 3 executed: 実行されたタスク数が表示されます。

まとめ

Gradleでビルドを実行すると、以下のプロセスが進行します:

  1. Gradleはプロジェクトの設定を読み込む。
  2. build.gradle で定義されたタスクや依存関係を解決し、タスクの実行順序を決定。
  3. 各タスクが実行され、最終的な成果物(JARファイル、WARファイルなど)が生成され、テストが実行される。

これにより、プロジェクトがビルドされ、成果物としてデプロイ可能なファイルが生成されます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?