5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

liberty-maven-pluginでLiberty上で稼働するアプリケーション開発を効率化する

Last updated at Posted at 2021-04-11

概要

Mavenのliberty-maven-pluginを使うと、OpenLiberty(WebSphere Liberty)を使うWebアプリケーションの開発を効率化できます。

このプラグインでできること

  • Libertyの導入を自動化できる。pom.xmlに導入したいサーバーの種類(OpenLiberty or WebSphere Liberty)、バージョンなどの情報を書いておけば良い
  • LibertyをDev modeで起動することで、pom.xml含むソースコードやLiberty構成ファイル(server.xml)などをエディタで変更した結果をすぐにサーバーへ反映できる
  • Eclipseを使わなくてよくVSCodeなどの好きなエディタを利用できる

利用方法

ファイルの準備

pom.xmlにプラグインを追加して、<runtimeArtifact>にサーバーの種類(OpenLiberty or WebSphere Liberty)、バージョンを記載します。以下はOpenLibertyの例です。

<build>
  <plugins>
  <plugin>
    <groupId>io.openliberty.tools</groupId>
    <artifactId>liberty-maven-plugin</artifactId>
    <version>3.3.4</version>
    <configuration>
      <runtimeArtifact>
        <groupId>io.openliberty</groupId>
        <artifactId>openliberty-kernel</artifactId>
        <version>21.0.0.3</version>
      </runtimeArtifact>
    </configuration>
  </plugin>
  </plugins>
</build>

WebSphere Liberty JavaEE8を利用したい場合はこうなります。

<build>
  <plugins>
  <plugin>
    <groupId>io.openliberty.tools</groupId>
    <artifactId>liberty-maven-plugin</artifactId>
    <version>3.3.4</version>
    <configuration>
      <runtimeArtifact>
        <groupId>com.ibm.websphere.appserver.runtime</groupId>
        <artifactId>wlp-javaee8</artifactId>
        <version>21.0.0.3</version>
      </runtimeArtifact>
    </configuration>
  </plugin>
  </plugins>
</build>

server.xmlはMavenのプロジェクト構成の場合、src/main/liberty/configに配置しておきます。特別な記載は必要ありません。以下の例では、<feature>としてCDIとJAX-RSのフィーチャーを指定しています。

<server description="my server">

	<featureManager>
		<feature>cdi-2.0</feature>
		<feature>jaxrs-2.1</feature>
	</featureManager>

	<httpEndpoint httpPort="9080" id="defaultHttpEndpoint" host="*"/>
</server>

サーバーの作成と起動

コマンドラインでmvn liberty:devというコマンドを実行すると、以下が一気に実行されます。

  • アプリケーションのコンパイル
  • サーバーの作成、不足したフィーチャーの導入
  • Dev modeでLibertyの起動
mvn liberty:dev

利用上のポイント

  • サーバーの標準出力(message.log)がtail -fで出力される状態になるので、アプリケーションログも標準出力に出力されるようにしておくと良いです。Ctrl+Cで終了できます
  • Javaソースコードだけでなくpom.xml、logback.xmlなどのリソース、テストコードがエディタで変更されていないか監視され、変更されたタイミングでコンパイル&サーバーへ反映されるので開発をサクサク進められます
  • mvn liberty:devで起動中のターミナルでエンターキーを入力するとテストコードを実行できます。単純な単体テストだけでなくLiberty上で稼働するアプリケーションを叩く結合テストを実行することもできます
  • サーバーはtarget/liberty配下のディレクトリに作成されるのでmvn cleanで再作成できます
  • src/main/liberty/configに配置下ファイルはtarget/liberty/wlp/usr/servers/defaultServerへコピーされます。JDBCドライバーなどを置いておくとserver.xmlからは以下のような指定で参照できます。
<library id="db2Lib">
  <fileset dir="${server.config.dir}" includes="db2jcc4.jar"/>
</library>
  • VSCode拡張機能のOpen Liberty Toolsも提供されていますが私の環境では動きが変な時がありました
  • Maven以外にGradle用のプラグインもあります

参考

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?