Spring BootとMavenでローカルJARファイルを実行可能JARに含める方法

概要

実際の開発現場では、他チームから提供されたJARファイルをプロジェクトに組み込む必要があります。Spring BootアプリケーションをMavenで管理している場合、ローカルにあるJARを最終的な実行可能JARに含めるには、特定の設定が必要です。本稿では、その具体的な手順を解説します。

動作環境

コンポーネントバージョン
Maven3.2.3
Spring Boot2.1.1.RELEASE
IntelliJ IDEA2019.1

設定手順

1. libディレクトリの作成

プロジェクトのルートディレクトリ配下にlibフォルダを作成し、その中に組み込みたいJARファイルを配置します。以下の構成をイメージしてください:

プロジェクトルート/
├── lib/
│   └── external-module-1.0.0.jar
├── src/
├── pom.xml
└── ...

2. pom.xmlへの依存関係追加

ローカルJARを依存関係として認識させるため、pom.xmlのdependenciesセクションに以下の設定を追加します:

<dependency>
    <groupId>com.external</groupId>
    <artifactId>external-module</artifactId>
    <version>1.0.0</version>
    <type>jar</type>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/external-module-1.0.0.jar</systemPath>
</dependency>

重要なポイントとして、scopesystemに設定し、systemPathでJARファイルのパスを指定します。

3. ビルドプラグインの設定

Spring Boot Mavenプラグインの設定を追加し、システムスコープの依存関係を出力JARに含めるようにします:

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

この設定により、scopesystemの依存関係がパッケージに含まれます。

4. 依存関係の更新とビルド実行

IDE側でMavenの依存関係を更新した後、ビルドを実行します。IntelliJ IDEAの場合:

  1. Mavenツールウィンドウを開く
  2. refreshボタンまたは「Reload All Maven Projects」をクリック
  3. 以下のコマンドでパッケージングを実行
mvn clean install -DskipTests

5. 結果の確認

ビルドが完了すると、targetディレクトリ配下に実行可能なJARが生成されます。このJARファイルをサーバー環境にデプロイして正常に動作すれば、設定は完了です。

JARファイルの内容を確認する場合、以下のコマンドで内部構造を確認できます:

jar tf app.jar | grep -i "external"

まとめ

Mavenのシステムスコープ機能とSpring Boot Mavenプラグインを組み合わせることで、ローカルJARを容易に実行可能JARに含めることができます。この手法は、ライブラリが外部リポジトリに公開されていない場合やすぐに入手必要がある場合に有効です。

タグ: spring-boot Maven intellij-idea Java build-tools

6月5日 20:13 投稿