1. 概要

このクイックチュートリアルでは、Spring Bootを使用してマルチモジュールプロジェクトを作成する方法を示します。

まず、アプリケーション自体ではないライブラリjarを作成し、次にライブラリを使用するアプリケーションを作成します。

スプリングブートの概要については、この記事を参照してください。

2. 設定

マルチモジュールプロジェクトをセットアップするために、 pomパッケージを使用して単純なモジュールを作成し、Maven構成でライブラリとアプリケーションモジュールを集約しましょう。

<groupId>com.baeldung</groupId>
<artifactId>parent-multi-module</artifactId>
<packaging>pom</packaging>

プロジェクト内に2つのディレクトリを作成し、アプリケーションモジュールをライブラリjarモジュールから分割します。

pom.xmlでモジュールを宣言しましょう。

<modules>
    <module>library</module>
    <module>application</module>
</modules>

3. Library Jar

ライブラリモジュールには、jarパッケージを使用します。

<groupId>com.baledung.example</groupId>
<artifactId>library</artifactId>
<packaging>jar</packaging>

Spring Boot依存関係管理を利用したいので、 spring -boot-starter-parent を親プロジェクトとして使用し、に注意します。 を空の値に設定して、Mavenがリポジトリから親pom.xmlを解決するようにします。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.6.RELEASE</version>
    <relativePath/>
</parent>

独自の親プロジェクトがある場合は、代わりに、pomのセクションに部品表(BOM)として依存関係管理をインポートできます。 xml :

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <type>pom</type>
            <version>2.4.0</version>
            <scope>import</scope>
        </dependency>
    </dependencies>
<dependencyManagement>

最後に、初期の依存関係は非常に単純になります。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter</artifactId>
    </dependency>
</dependencies>

このモジュールでは、 Spring Bootプラグインは必要ありません。これは、プラグインの主な機能が、実行可能ファイル über-jar、を作成することであるためです。ライブラリの必要性。

その後、ライブラリによって提供されるサービスコンポーネントを開発する準備が整いました。

@Service
public class EvenOddService {

    public String isEvenOrOdd(Integer number) {
        return number % 2 == 0 ? "Even" : "Odd";
    }
}

4. アプリケーションプロジェクト

ライブラリモジュールと同様に、アプリケーションモジュールはjarパッケージを使用します。

<groupId>com.baeldung.example</groupId>
<artifactId>application</artifactId>
<packaging>jar</packaging>

そして、以前と同じようにSpring Boot依存関係管理を利用します。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.6.RELEASE</version>
    <relativePath/>
</parent>

Springブートスターターの依存関係に加えて、前のセクションで作成したライブラリjarを含めます。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.baeldung.example</groupId>
        <artifactId>library</artifactId>
        <version>${project.version}</version>
    </dependency>
</dependencies>

最後に、 Spring Bootプラグインを使用します:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

この場所で上記のプラグインを使用する便利な理由がいくつかあります。

まず、 SpringBootの依存関係に一致するようにバージョン番号を設定する組み込みの依存関係リゾルバーを提供します。

次に、実行可能なクラスとしてフラグを立てるmainメソッドを検索します。

最後に、そしておそらく最も重要なこととして、クラスパス上のすべての jar を収集し、単一の実行可能なüber-jarを構築します。

これで、アプリケーションクラスを記述して要点を理解する準備が整いました。次に、メインアプリケーションクラス内にコントローラーを実装しましょう。

@SpringBootApplication(scanBasePackages = "com.baeldung")
@RestController
public class EvenOddApplication {

    private EvenOddService evenOddService;

    // constructor

    @GetMapping("/validate/")
    public String isEvenOrOdd(
      @RequestParam("number") Integer number) {
        return evenOddService.isEvenOrOdd(number);
    }

    public static void main(String[] args) {
        SpringApplication.run(EvenOddApplication.class, args);
    }
}

5. 結論

この記事では、マルチモジュールプロジェクトを実装および構成し、Spring Bootを使用してライブラリjarを独自に構築する方法について説明しました。

いつものように、コードサンプルはGitHubにあります。