前回は、Windows上のDockerに実行環境を構築してみました。
今回は、iDempiere/JPiere本体の開発環境を構築してみます。
今回やってみたこと
Eclipse上でiDempiere/JPiere本体のモジュールをビルドして、Windows10のローカル環境で動作させてみます。
今回は、JPiere Ver10の環境を構築します。
基本的には、公式マニュアルどおりに手順を進めると環境構築が完了します。
セットアップ公式マニュアル
こちらを参考にさせていただきました。
JPiereをセットアップするにあたり、iDempiereの環境を先に構築します。
iDempiere/JPiereのモジュール群の準備
jarライブラリを含め非常にファイル数が多いので、ネットワークが安定した環境でセットアップします。
本来のライブラリのコピーから必要なモジュールのダウンロードは以下の手順で行います。
PostgreSQLおよびGitをインストールしたら具体的なセットアップ作業にはいります。
また、MavenはVer3.6.3を前提としているようなので、以下のサイトからあらかじめダウンロードしbinディレクトリまでのパスを通しておきます。
- Mavenダウンロード
iDempiereモジュール関連準備
- ソースコードのダウンロードと各モジュールのビルド
50個のモジュールのビルドまで実行されれば完了です。
私が当初検証した環境では、ビルド完了まで約30分かかりました。
mvn verifyコマンドを実行後、のんびりと待ちましょう。
mkdir C:\idempiere_src
cd C:\idempiere_src
git clone https://github.com/idempiere/idempiere.git
cd idempiere
git checkout release-10
mvn verify
・・・・
Downloaded from Central: https://repo1.maven.org/maven2/org/glassfish/pfl/pfl-asm/4.1.0/pfl-asm-4.1.0.jar (358 kB at 766 kB/s)
Downloading from Central: https://repo1.maven.org/maven2/org/glassfish/pfl/pfl-asm/4.1.0/pfl-asm-4.1.0-sources.jar
Downloaded from Central: https://repo1.maven.org/maven2/org/glassfish/pfl/pfl-asm/4.1.0/pfl-asm-4.1.0-sources.jar (379 kB at 521 kB/s)
・・・・
[INFO] org.idempiere.javadoc .............................. SUCCESS [ 0.411 s]
[INFO] org.idempiere.p2.targetplatform .................... SUCCESS [ 0.017 s]
[INFO] org.idempiere.main ................................. SUCCESS [ 0.014 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
・・・・
ここまでで、iDempiereの環境が出来上がりました。
なお、ここまでで、iDempiereのモジュールおよびサービスが起動できるか確認することができます。
以下のserver.productを指定してサービスが起動後、「iDempiere/JPiere画面の動作確認」を参照しブラウザで確認することができます。ログインまではできると思います。
つづいて、JPiere環境としてプラグイン等を準備していきます。
JPiereモジュール関連準備
JPiereの環境構築のためのマニュアルはこちらを参照。
JPiereのモジュールは、大きく4つのプラグインから構成されています。
※ 上記構成図は、公式サイトから抜粋
続いて、JPiereの3つのモジュールおよびiDempiereの1つのモジュールのコードをEclipse上にセットアップしていきます。
JPPS:JPiere Pluginsについては、各ディレクトリとして配布されていました。
以下のフォルダからcloneします。なお、Ver10を前提に環境を構築していますので、iDempiere同様にJPiereのモジュールもブランチにVer10(gitコマンドに「-b release-10」を付与)を指定します。
- Github
JPiereフラグメンツ 【JPFS:JPiere Fragments】
JPiereベースプラグイン【JPBP:JPiere Base Plugin】
JPiereプラグインズ【JPPS:JPiere Plugins】
jpiere.plugin.delete
jpiere.plugin.groupware
jpiere.plugin.webui.formwindow
jpiere.plugin.webui.matrixwindow
jpiere.plugin.webui.simpleinputinputwindow
JPiereモディフィケーションズ【JPMS:JPiere Modifications】
JPiereの各ソースの準備
cd C:\idempiere_src
git clone https://github.com/JPiere/JPFS.git -b release-10
git clone https://github.com/JPiere/JPBP.git -b release-10
git clone https://github.com/JPiere/jpiere.plugin.delete -b release-10
git clone https://github.com/JPiere/jpiere.plugin.groupware -b release-10
git clone https://github.com/JPiere/jpiere.plugin.webui.formwindow -b release-10
git clone https://github.com/JPiere/jpiere.plugin.webui.matrixwindow -b release-10
git clone https://github.com/JPiere/jpiere.plugin.webui.simpleinputwindow -b release-10
git clone https://github.com/JPiere/JPMS.git -b release-10
上記ソースコードのディレクトリに対して、Mavenプロジェクトを指定してEclipseにインポートします。
この手順も、公式マニュアルに沿って操作すると環境構築が完了できます。
ソースコードとEclipseプロジェクト
各モジュールをインポートしたソースコードとEclipseプロジェクト一式をこちらのGithub上に公開しています。ご参考まで。
セットアップ時の考慮点
-
eclipseは、マニュアルにある通り2022/03版を用意します。私の環境に複数のeclipseがインストールされており、2000版を使用したらeclipse上で各ライブラリが読み込み対象外として扱われるなど、色々な問題が発生しました。
-
接続先のPostgreSQLは、前回の投稿で構築したDocker上のPostgreSQLに接続します。
docker-entrypoint.shを参照し、必要な情報を登録します。
KEY_STORE_ON=${KEY_STORE_ON:-whoami}
KEY_STORE_OU=${KEY_STORE_OU:-JPiere Docker}
KEY_STORE_O=${KEY_STORE_O:-JPiere}
KEY_STORE_L=${KEY_STORE_L:-Asia/Tokyo}
KEY_STORE_S=${KEY_STORE_S:-CA}
KEY_STORE_C=${KEY_STORE_C:-JP}
- pom.xmlを修正後の操作
pom.xmlのパスを修正したら、Mavenのメニューからプロジェクトを更新します。※ 赤い×マークが消えます
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>jpiere.base.plugin</artifactId>
<packaging>eclipse-plugin</packaging>
<name>jpiere.base.plugin</name>
<parent>
<groupId>org.idempiere</groupId>
<artifactId>org.idempiere.parent</artifactId>
<version>${revision}</version>
- <relativePath>../../../../../../../src/pleiades202112_JPiere10/org.idempiere.parent/pom.xml</relativePath>
+ <relativePath>../../idempiere/org.idempiere.parent/pom.xml</relativePath>
</parent>
</project>
Peoject Explorerから当該プロジェクトを選択して、「Maven -> Update Project」を選択後、以下の画面が表示されますので、jpiere・・・をすべて選択してOKボタンをクリックし更新します。
iDempiere/JPiere画面の動作確認
server.productを指定してサービスが起動後以下のURLにブラウザからアクセスします。
https://127.0.0.1:8443/webui
にアクセスします。
PostgreSQLサーバーは前回同様のインスタンスを使用しますので、ログイン情報も同様の文字列を指定します。
メール: superuser(at)oss-erp.co.jp
パスワード: System
上記の画面が表示されれば動作確認完了です。
残対応
ソースコードをローカル環境に展開して、Eclipseからサービスを起動し画面の操作するまでを検証してみました。
残対応は、公式マニュアルに説明されています「インストールパッケージの作成方法」および「iDempiere6.1以上でJPiereをインストールパッケージに含めるためのPOMファイルの修正」です。
また、httpsでの接続の確立と、PostgreSQLのデータが古いことによる警告が出ている点について、次回以降に検証したいと思います。
次回は
ここままでiDempiere/JPiere開発環境が整いました。
公式マニュアルも非常に丁寧の掲載してくださっており、マニュアル通りに進めて開発構築することができました。
iDempiere/JPiere開発チームに感謝いたします。
今後は、実際のプラグインのカスタマイズ(iDempiereのプロセスについて検証)、データベースアクセスIOおよび、認証関連を検証していきたいと思います。