Open Libertyをオフライン環境で動作させたい場合に、ZIPファイルから起動する方法を記載します。
ただし毎回ZIPファイルを手動で展開したりアプリケーションをデプロイするのは面倒です。Liberty Maven pluginを活用しながらZIPファイル起動を試みます。
本記事で使用するコンポーネント
コンポーネント名 | バージョン |
---|---|
JDK | OpenJDK 17.0.9 (IBM Semeru Runtime Open Edition) |
Open Liberty | 24.0.0.1 |
Apache Maven | 3.9.6 |
Liberty Maven plugin | 3.10 |
$ java -version
openjdk version "17.0.9" 2023-10-17
IBM Semeru Runtime Open Edition 17.0.9.0 (build 17.0.9+9)
Eclipse OpenJ9 VM 17.0.9.0 (build openj9-0.41.0, JRE 17 Mac OS X amd64-64-Bit Compressed References 20231017_583 (JIT enabled, AOT enabled)
OpenJ9 - 461bf3c70
OMR - 5eee6ad9d
JCL - 3699725139c based on jdk-17.0.9+9)
Open LibertyのZIPファイルの入手
Open Libertyの「Get Started」ページからZIPファイルを入手します。
使いたいバージョンおよびパッケージ名からダウンロードリンクを辿ります。
パッケージはWebアプリ目的かつ使いたいFeatureが分かる場合は「Web Profile ~」、どのFeatureを使うかわからない場合は「Jakarta EE ~」を選んでおくと後からFeatureが足りないといった手戻りが少ないです。
この記事では「Web Profile 10」のZIPファイルを使用します。
pom.xmlの設定
他のローカル開発環境での起動方法同様に、ZIPファイルからの起動はLiberty Maven Pluginを使用します。
アプリケーションのpom.xmlにLiberty Maven pluginを追加します。
このMaven pluginもMaven Centralからダウンロードしますので、オフライン環境では事前にローカルリポジトリ(.m2
など)にpluginのJARファイルを配置しましょう。
<?xml version="1.0" encoding="UTF-8" ?>
<project>
...
<build>
<finalName>offline-demo</finalName>
<plugins>
<!-- Liberty Maven plugin -->
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.10</version>
<!-- ZIPファイルから起動する -->
<configuration>
<runtimeArchive>/path/to/openliberty-webProfile10-24.0.0.1.zip </runtimeArchive>
</configuration>
</plugin>
</plugins>
</build>
</project>
重要な部分は configuration > runtimeArchive
のブロックです。
runtimeArchive
に先ほどダウンロードしたZIPファイルのパスを指定します。
この状態でMavenゴールを指定するだけで自動的にZIPファイルを展開してアプリケーションをデプロイするようになります。
<project>
...
<build>
<plugins>
<plugin>
...
<!-- ZIPファイルから起動する -->
<configuration>
<runtimeArchive>/path/to/openliberty-webProfile10-24.0.0.1.zip</runtimeArchive>
</configuration>
</plugin>
</plugins>
</build>
</project>
稼働確認
前述のLiberty Maven pluginの設定を追加した状態で Open Liberty を起動します。
ログにローカルのZIPファイルを使用された旨のメッセージが出力されています。
$ mvn liberty:dev
...
CWWKM2102I: non-artifact based assembly archive : /path/to/openliberty-webProfile10-24.0.0.1.zip を使用しています。
...
Installing assembly...
Expanding: /path/to/openliberty-webProfile10-24.0.0.1.zip into /path/to/project/liberty-demo-app/target/liberty
...
[監査 ] CWWKZ0001I: アプリケーション liberty-demo-app が 11.048 秒で開始しました。
参考
ci.maven - Liberty installation configuration
以上。