カテゴリ: Quarkus 更新日: 2026/03/14

Quarkusプロジェクトで共通モジュールを作る方法を完全解説!初心者でもわかる再利用しやすい設計

Quarkusプロジェクトで共通モジュールを作る方法
Quarkusプロジェクトで共通モジュールを作る方法

先生と生徒の会話形式で理解しよう

生徒

「Quarkusで複数のサービスを作っていると、同じ処理を何度も書いてしまいます。共通化する方法はありますか?」

先生

「Quarkusでは、共通モジュールを作ることで処理やクラスを再利用できます。プロジェクト構成の段階で考えておくと便利ですよ。」

生徒

「共通モジュールって、難しい設計が必要なんでしょうか?」

先生

「基本はJavaのマルチモジュール構成と同じです。Quarkus向けにどう整理するかを順番に説明しますね。」

1. Quarkusで共通モジュールを作る目的

1. Quarkusで共通モジュールを作る目的
1. Quarkusで共通モジュールを作る目的

Quarkusプロジェクトで共通モジュールを作る最大の目的は、コードの再利用性を高めることです。 Javaでアプリケーションを開発していると、定数クラス、ユーティリティ処理、共通の例外定義、 共通DTOなど、複数のプロジェクトで使い回したいコードが必ず出てきます。

これらを各プロジェクトにコピーしてしまうと、修正時にすべてを直す必要が出てきます。 Quarkusのプロジェクト構成に共通モジュールを組み込むことで、 一か所の修正で全体に反映できる設計になります。 初心者でも保守しやすい構成を作れるのが大きなメリットです。

2. 共通モジュールが向いているケース

2. 共通モジュールが向いているケース
2. 共通モジュールが向いているケース

Quarkusで共通モジュールを作るべきかどうかは、プロジェクト規模によって変わります。 小さなサンプルアプリでは不要な場合もありますが、 複数のQuarkusアプリやマイクロサービスを運用する場合には効果が高くなります。

例えば、共通のバリデーション処理、ログ出力用ユーティリティ、 エラーレスポンスの形式、認証情報を扱うDTOなどは共通モジュールに向いています。 Quarkusのプロジェクト構成を整理する第一歩として、共通化対象を洗い出すことが重要です。

3. Quarkus共通モジュールの基本プロジェクト構成

3. Quarkus共通モジュールの基本プロジェクト構成
3. Quarkus共通モジュールの基本プロジェクト構成

Quarkusで共通モジュールを作る場合、Javaのマルチモジュール構成を採用します。 親プロジェクトを用意し、その配下にアプリ用モジュールと共通モジュールを配置します。 これにより依存関係を明確に管理できます。


quarkus-project
├─ pom.xml
├─ common
│  ├─ pom.xml
│  └─ src
└─ app
   ├─ pom.xml
   └─ src

commonモジュールが共通処理をまとめる場所で、 appモジュールが実際のQuarkusアプリになります。 この構成は初心者でも理解しやすく、拡張もしやすい形です。

4. 親プロジェクトの役割

4. 親プロジェクトの役割
4. 親プロジェクトの役割

親プロジェクトは、複数モジュールをまとめるための管理用プロジェクトです。 ここではQuarkusのバージョン、Javaのバージョン、共通ライブラリの定義を行います。 実際の処理は書かず、構成管理に専念します。


<project>
    <packaging>pom</packaging>
    <modules>
        <module>common</module>
        <module>app</module>
    </modules>
</project>

このようにmodulesで共通モジュールとアプリモジュールを登録します。 Quarkusプロジェクト全体の土台となる重要な設定です。

5. 共通モジュールにクラスを定義する

5. 共通モジュールにクラスを定義する
5. 共通モジュールにクラスを定義する

共通モジュールには、アプリに依存しない純粋なJavaクラスを配置します。 Quarkus固有のアノテーションを使わない設計にすると、 将来別のプロジェクトでも再利用しやすくなります。


package com.example.common.util;

public class StringUtil {

    public static boolean isEmpty(String value) {
        return value == null || value.isEmpty();
    }
}

このようなユーティリティクラスは、複数のQuarkusプロジェクトで使い回せます。 共通モジュールの役割は、あくまで汎用的な処理に限定するのがポイントです。

6. Quarkusアプリ側で共通モジュールを利用する

6. Quarkusアプリ側で共通モジュールを利用する
6. Quarkusアプリ側で共通モジュールを利用する

appモジュールでは、共通モジュールを依存関係として追加します。 これにより、commonモジュール内のクラスを通常のJavaクラスとして利用できます。 Quarkus特有の設定は不要です。


<dependency>
    <groupId>com.example</groupId>
    <artifactId>common</artifactId>
    <version>1.0.0</version>
</dependency>

package com.example.app.service;

import com.example.common.util.StringUtil;

public class SampleService {

    public boolean check(String text) {
        return StringUtil.isEmpty(text);
    }
}

このように、共通モジュールを意識せずに通常のJavaクラスとして使えます。 Quarkusのプロジェクト構成を複雑にしない点も魅力です。

7. 共通モジュール設計で意識したいポイント

7. 共通モジュール設計で意識したいポイント
7. 共通モジュール設計で意識したいポイント

共通モジュールを作る際は、何でも入れすぎないことが重要です。 特定の業務ロジックやアプリ固有の処理を入れてしまうと、 かえって再利用性が下がってしまいます。

共通モジュールは、あくまで土台となる部品集という位置付けにします。 Quarkusのプロジェクト構成をシンプルに保ちつつ、 必要な部分だけを共通化する意識が、初心者には特に大切です。

関連記事:
カテゴリの一覧へ
新着記事
New1
Quarkus
QuarkusのREST APIでJSONレスポンスを返す方法を完全解説!初心者向けJackson・JSON-B入門
New2
Quarkus
Quarkus拡張開発入門!GraalVMネイティブイメージ統合の仕組みを徹底解説
New3
Micronaut
Micronautの@Requiresとは?条件付きBeanの読み込み方法をやさしく解説【DIとアノテーション入門】
New4
Quarkus
Quarkusでマイクロサービス構成を作るプロジェクト設計を完全解説!初心者でも理解できる分割設計の考え方
人気記事
No.1
Java&Spring記事人気No1
Quarkus
Quarkus拡張開発を徹底解説!仕組みから自作エクステンションの作り方まで
No.2
Java&Spring記事人気No2
Java
Javaのコンパイルと実行の流れを解説!JVM・JDK・JREの違いも初心者向けに整理
No.3
Java&Spring記事人気No3
Quarkus
Quarkus入門!GitHub ActionsでCI/CDパイプラインを構築して自動ビルドを実現する方法
No.4
Java&Spring記事人気No4
Java
JavaのString検索方法を完全ガイド!contains・indexOf・startsWith・endsWithを徹底解説
No.5
Java&Spring記事人気No5
Java
JavaのString比較を徹底解説!equalsと==の違い、初心者が陥る罠とは?
No.6
Java&Spring記事人気No6
Java
Java Functionインタフェースの使い方を完全ガイド!map変換と処理チェーンを理解する
No.7
Java&Spring記事人気No7
Quarkus
Quarkus拡張開発入門!自作Extensionを作る基本ステップと仕組みを徹底解説
No.8
Java&Spring記事人気No8
Quarkus
Quarkus拡張開発をマスター!ビルドプロセスの仕組みと内部構造を徹底解説