2
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?

記事投稿キャンペーン 「2024年!初アウトプットをしよう」

VSCodeでOpen LibertyプロジェクトをAntからMavenに

Last updated at Posted at 2024-01-11

VSCodeでOpen LibertyプロジェクトをAntビルドからMavenビルドに変更した際の大まかな手順と個人的につまずいた点をまとめました。

Maven 基礎知識

こちらについては、詳細は別サイトや書籍などでご確認ください。ライブラリをpom.xmlに記述することで管理し、ビルド時にMaven セントラルリポジトリから自動でダウンロードして使えるという点が最も大きな特徴と思われます。

Maven移行の流れ

Mavenをインストール
環境変数「JAVA_HOME」に JDK のディレクトリのパス追加
環境変数「PATH」に Maven の実行ファイルのあるディレクトリを追加
インストールされたか確認
コマンドプロンプトでmvn –-versionを実行しバージョンが表示されるか確認

$ mvn --version

バージョン等の情報が表示されればインストール完了です。

pom.xmlの記載

Packageの形式を指定します。今回はwarで作成しました。

pom.xml
  <groupId>XXXXXX</groupId>
  <artifactId>XXXXXX</artifactId>
  <packaging>war</packaging>
  <version>1.0.0</version>

dependencyの記載はMavenのセントラルリポジトリにあるものは、セントラルリポジトリのMavenタブをコピーすると便利です。利用しているすべてのLibraryを記載しましょう。

pom.xml
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.10</version>
    </dependency>

OpenLibertyのPluginを記述

pom.xml
 <project>
  ...
       <build>
        <finalName>XXXXXX</finalName>
        <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> 
</project>

作成したwarファイルの出力先を記述
${project.basedir}はプロジェクト直下を指します。

pom.xml
 <project>
  ...
       <build>
        <finalName>XXXXXX</finalName>
        <plugins>
     ...
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                        <warName>XXXXXX</warName>
                        <outputDirectory>${project.basedir}/src/main/liberty/config/apps</outputDirectory>
                       </configuration>       
            </plugin>        
        </plugins>   
    </build> 
</project>

ディレクトリ構成変更

Mavenの標準の構成に従って、元のプロジェクトのフォルダやファイルを移動します。Mavenの標準構成でないとビルドは正常に実行されないので注意。

image.png

Javaソースコード:
/src/main/java/com/任意の名前/
任意の名前(プロジェクト名など)のディレクトリの下にソースコードのフォルダやファイルを移動する。元のソースコードが階層構造になっている場合はそのまま任意の名前の配下に配置する。

Liberty設定:
/src/main/liberty/config/
config配下にappsフォルダを配置して、apps配下にwarファイルを出力するようにpom.xmlで設定します(後述)。

js、WEB-INFフォルダなど:
/src/main/webapp/
jsやWEB-INFフォルダなどはそのままwebapp配下に移動します。

Resourceファイル:
/src/main/resources/
Resourceファイルはフォルダごとresources配下に移動します。

ディレクトリ構成変更に伴う変更

ソースコードの移動に伴い、JavaのPackage、Importの記載、各種xmlなど変更
(com以降を記載する)

XXXX.java
package com.XXX.controller;

import com.XXX.dao.XXXXXXX;
import com.XXX.entity.XXXXXX;
mybatis.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<settings>
		<setting name="cacheEnabled" value="true"/>
	</settings>

	<typeAliases>
		 <typeAlias type="com.XXX.entity.XXXXXX" alias="XXXXXX" />

変更にもれがあると参照されず動作不良となるので、もれなく探して変更しましょう。
(私の場合はresourceファイルの参照がうまくいっておらず特定に時間がかかりました。)

Mavenコマンドで実行

VSCodeのterminalでそれぞれのコマンドを発行して実行します。よく利用するコマンドをご紹介します。

Build時に作成されるtargetフォルダを削除

$ mvn clean

コンパイル、Classファイルの作成

$ mvn compile

エンコードやJavaバージョンの指定はpom.xmlのpluginに記載

pom.xml
<project>
 ...
      <build>
       <finalName>XXXXXX</finalName>
       <plugins>
     ...
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>3.8.1</version>
               <configuration>
                   <encoding>UTF-8</encoding>
                   <source>1.8</source>
                   <target>1.8</target>
               </configuration>
           </plugin>
       </plugins>   
   </build> 
</project>

pom.xmlで指定された形式でパッケージ、warやearファイルの作成

$ mvn package

ローカルリポジトリにインストール

$ mvn install

LocalでLibertyの起動

$ mvn liberty:run

Localが起動したら動作確認を行いましょう。お疲れ様でした。

2
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
2
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?