概要
実際の開発現場では、他チームから提供されたJARファイルをプロジェクトに組み込む必要があります。Spring BootアプリケーションをMavenで管理している場合、ローカルにあるJARを最終的な実行可能JARに含めるには、特定の設定が必要です。本稿では、その具体的な手順を解説します。
動作環境
| コンポーネント | バージョン |
|---|---|
| Maven | 3.2.3 |
| Spring Boot | 2.1.1.RELEASE |
| IntelliJ IDEA | 2019.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>
重要なポイントとして、scopeをsystemに設定し、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>
この設定により、scopeがsystemの依存関係がパッケージに含まれます。
4. 依存関係の更新とビルド実行
IDE側でMavenの依存関係を更新した後、ビルドを実行します。IntelliJ IDEAの場合:
- Mavenツールウィンドウを開く
- refreshボタンまたは「Reload All Maven Projects」をクリック
- 以下のコマンドでパッケージングを実行
mvn clean install -DskipTests
5. 結果の確認
ビルドが完了すると、targetディレクトリ配下に実行可能なJARが生成されます。このJARファイルをサーバー環境にデプロイして正常に動作すれば、設定は完了です。
JARファイルの内容を確認する場合、以下のコマンドで内部構造を確認できます:
jar tf app.jar | grep -i "external"
まとめ
Mavenのシステムスコープ機能とSpring Boot Mavenプラグインを組み合わせることで、ローカルJARを容易に実行可能JARに含めることができます。この手法は、ライブラリが外部リポジトリに公開されていない場合やすぐに入手必要がある場合に有効です。