JPiereの開発環境構築

iDempiereトレーニング研修

JPiereの開発環境を構築するには、その前にiDempiereの開発環境が必要です。

【補足説明】iDempiereのバージョンとJPiereのバージョン

 JPiereのバージョン番号はiDempiereのバージョン番号と同期をしています。そのため開発環境を構築する際には、同じバージョンのiDempiereのソースコードとJPiereのソースコードを使用するようにして下さい。

JPiereのソースコードの取得

JPiereのソースコードは、GitHubで公開しています。

GitHub:JPiereリポジトリ

※2019年12月より、ソースコードの管理をBitBucketのMercurialから、GitHubのGitに移行しました。

JPiereの構成とリポジトリ

JPiere(ジェイピエール)はiDempiere(アイデンピエレ)をベースとして次の5つに分類し、開発及び管理しています。

JPiereの構成
JPiereの構成

JPiereモディフィケーションズはiDempiereのコアとなっているソースコードに修正を加えたい場合に、OSGiのフラグメントの機能を活用して作成したプラグイン群です。Eclipseのプロジェクトはフラグメントのベースとなるプラグイン毎に作成する必要があるため複数存在していますが、リポジトリ上は1つのリポジトリでまとめて管理しています。

JPiereモディフィケーションズのリポジトリには下記のプラグインプロジェクトが含まれています

JPiere12以上~

  • jpiere.modification.org.adempiere.base
  • jpiere.modification.org.adempiere.ui.zk
  • jpiere.modification.org.idempiere.zk.datatable

JPiere11まで

  • jpiere.modification.org.adempiere.base
  • jpiere.modification.org.adempiere.ui.zk

JPiereコンフィギュレーションズはパラメータ設定だけのカスタマイズになりますのでソースコードはありません。JPiereコンフィギュレーションズのリポジトリでは、PostgreSQLのダンプファイルを管理するのとJPiereコンフィギュレーションズに施されているカスタマイズのリソース(主にSQLのDDL)を管理しています。

◆PostgreSQLのダンプファイル(/data/ExpDat.dmp)

PostgreSQLのダンプファイルは、JPCSのdataフォルダの直下にあるExpDat.dmpファイルです。JPiereの開発環境を構築する際には、このダンプファイルを使用してデータベースをリストアして下さい。

【補足説明】JPiereコンフィギュレーションズだけを使用したい場合

JPiereコンフィギュレーションズだけを使用したい場合は、JPiereコンフィギュレーションズの使用上の注意を参考にして下さい。

JPiereフラグメンツはOSGiのフラグメントの機能を活用して作成したプラグイン群です。Eclipseのプロジェクトはフラグメントのベースとなるプラグイン毎に作成する必要があるため複数存在していますが、リポジトリ上は1つのリポジトリでまとめて管理しています。

JPiereフラグメンツのリポジトリには下記のプラグインプロジェクトが含まれています(2016年5月現在)。

  • jpiere.fragment.org.adempiere.base
  • jpiere.fragment.org.adempiere.report.jasper.library
  • jpiere.fragment.org.adempiere.server
  • jpiere.fragment.org.adempiere.ui.zk

JPiereベースプラグインは日本で必要とされるであろう機能を1つのプラグインにして提供しています。そのためJPiereベースプラグインのリポジトリで管理されているソースコードにはEclipseのプラグインプロジェクト(jpiere.base.plugin)が1つだけ含まれています。

JPiereベースプラグイン(JPBP)を使用する際には、JPiereフラグメンツ(JPFS)とJPiereコンフィギュレーションズ(JPCS)も一緒に使用する事を推奨いたします。

JPiereプラグインズでは、日本だけでなく多くの人にとって有益であろうプラグインを個々に独立して管理&開発しています。そのため、リポジトリも個々のプラグイン毎にあります。JPiereのリポジトリで、jpiere.plugin.○×△…となっているリポジトリはすべてJPiereプラグインズのリポジトリです。

◆JPiereプラグインズのリポジトリ(JPiere8.2~JPiere10)

【補足説明】プラグインの統合

JPiere8.2より"jpiere.plugin.webui.dashboardgadget" と "jpiere.plugin.webui.wysiwygeditor"の2つのプラグインを "jpiere.plugin.groupware"に統合しました。

◆JPiereプラグインズのリポジトリ(JPiere7.1まで)

  • jpiere.plugin.delete
  • jpiere.plugin.webui.dashboardgadget
  • jpiere.plugin.webui.formwindow
  • jpiere.plugin.webui.matrixwindow
  • jpiere.plugin.webui.simpleinputinputwindow
  • jpiere.plugin.webui.wysiwygeditor

【技術情報】JPPSのプラグインは単体で機能する!!

JPiereプラグインズはそれぞれ単体でiDempiereのプラグインとして使用する事ができるように意図して開発しています。そしてJPiereの開発環境に含めるかどうかは任意です。JPiereの開発環境に含めない場合は、除外したプラグインが提供している機能が使用できなくなるだけです。言い換えると使用すると思われるプラグインだけを含めてJPiereの開発環境を構築すれば良いようにしています。

プラグインのソースコードをEclipseにインポートする方法

JPiereコンフィギュレーションズ以外はソースコードをiDempiereの開発環境が構築されているEclipseにインポートする必要があります。

iDempiere6.1以上のインポート方法

iDempiere6.1からは、Mavenのプロジェクトとして、Eclipseにインポートする必要があります。

Eclipseメニュー:ファイル->インポート
Eclipseメニュー:ファイル->インポート

Eclipseのメニューバーからファイル->インポートを選択して下さい。

iDempiere5.1までのインポート方法

iDempiere5.1までは、普通のプラグインプロジェクトですので、普通のプロジェクトと同じ方法でEclipseにインポートする事ができます。

Eclipseメニュー:ファイル->インポート
Eclipseメニュー:ファイル->インポート

Eclipseのメニューバーからファイル->インポートを選択して下さい。

インポート:既存プロジェクトをワークスペースへ
インポート:既存プロジェクトをワークスペースへ

使いたいプラグイン選択肢てインポートして下さい。

プラグインプロジェクトのインポート後

JPiereのプラグインのプロジェクト名は、すべて"jpiere"からはじまるように統一していますので、プロジェクト・エクスプローラーでは一番上に配置されるのでわかりやすくなっています。

Eclipseの設定

JPiereの各種プラグインをインポートしたら、デバッグやインストールパッケージにインポートしたプラグインを含める設定を行う必要があります。

EclipseからiDempiereを起動するために必要な設定

JPiereをEclipseから実行するための設定です。メニューの実行->実行構成を開きます。

実行->実行構成
実行->実行構成

左側のメニューの”Eclipseアプリケーション”から"server.product"を選択し、右に表示されるプラグインタブで、使用するプラグインのフラグをONにします。

※開始レベルと自動開始の設定はデフォルトでも動くと思いますが、適宜行って下さい。

実行構成
実行構成

【補足説明】プラグインの開始レベルと自動開始設定

JPiereの各種プラグインの開始レベルと自動開始設定でエラーになる場合、次のように開始レベルと自動開始の設定を行ってみて下さい。

  • JPBP(jpiere.base.plugin)の開始レベルは"4"で、自動開始は"true"。
  • JPPS(jpiere.plugin.○×△)の各種プラグインの開始レベルは"4"で、自動開始は"true"。
  • JPFS(jpiere.fragment.○×△)の各種プラグインの開始レベルは"default"で、自動開始は"false"。※フラグメントプロジェクトなので変更できません。
  • JPMS(jpiere.modifications.○×△)の各種プラグインの開始レベルは"default"で、自動開始は"false"。※フラグメントプロジェクトなので変更できません。

基本方針として、通常のプラグインとして開発した場合は、開始レベルは"4"で、自動開始は"true"に設定してもらえれば問題ないと思います。そしてフラグメントとして開発した場合は開始レベルと自動開始の設定は変更する必要はありません。

 

JPiereモディフィケーションズだけの特別な設定

JPiereモディフィケーションズを有効にするために、次の設定が必要です。

◆jpiere.modification.org.adempiere.baseプロジェクト

jpiere.modification.org.adempiere.baseプロジェクトのJPiereモディフィケーションズを有効にするためにはorg.adempiere.baseプロジェクトのマニフェストファイルにクラスパス"jpiere.modification.org.adempiere.base.jar"を一番上に追加して下さい

マニフェストファイルにクラスパスを追加
マニフェストファイルにクラスパスを追加

【注意】マニフェストエディタ上でクラスパスを追加した場合

マニフェストエディタ上でクラスパスを追加した場合、ビルド情報にもそのクラスパスが自動で追加されてしまいます。ビルド情報へクラスパスを追加するのはJPiereモディフィケーションズの有効かの妨げになります。もしマニフェストエディタからクラスパスを追加た後で、ビルド情報へクラスパスも追加されているのを確認したらその部分の設定は削除して下さい。

ビルドタブに自動的に追加されるjpiere.modification.org.adempiere.base.jarを削除して下さい。
ビルドタブに自動的に追加されるjpiere.modification.org.adempiere.base.jarを削除して下さい。

◆jpiere.modification.org.adempiere.ui.zkプロジェクト

jpiere.modification.org.adempiere.ui.zkのプロジェクトもjpiere.modification.org.adempiere.baseプロジェクトと同様の設定を行います。

jpiere.modification.org.adempiere.ui.zkプロジェクトのJPiereモディフィケーションズを有効にするためにはorg.adempiere.ui.zkプロジェクトのマニフェストファイルにクラスパス"jpiere.modification.org.adempiere.ui.zk.jar"を一番上に追加して下さい

マニフェストファイルの編集
マニフェストファイルの編集

ビルドタブのランタイム情報に"jpiere.modification.org.adempiere.ui.zk.jar"が追加されていますので、選択し、Deleteボタンを押して削除して下さい。

ビルドタブのランタイム情報に追加されている"jpiere.modification.org.adempiere.ui.zk.jar"はDeleteボタンを押して削除して下さい。
ビルドタブのランタイム情報に追加されている"jpiere.modification.org.adempiere.ui.zk.jar"はDeleteボタンを押して削除して下さい。

JPiereのプラグインをiDempiereのインストールパッケージに含めるための設定

JPiereをインストールパッケージに含めるためにはorg.adempiere.server-featureプロジェクトにあるfeature.xmlを編集します。

JPiereをインストールパッケージに含める方法
JPiereをインストールパッケージに含める方法

プラグインタブで、追加ボタンをおし、JPiereのプラグインプロジェクトを選択して追加して下さい。これでJPiereのプラグインをあらかじめインストールパッケージに含める事ができます。

インストールパッケージの作成方法は、iDempiereとまったく同じです。次のコンテンツを参照して下さい。

【補足説明】BuckminsterのMaterializeでエラーが表示されたら(iDempiere5.1まで)

環境構築の際に、JPiereのプラグインをインストールパッケージに含める設定をした状態で、Materializeを行うと下記のようなエラーが表示される事があります。

ERROR   [0004] : No suitable provider for component jpiere.fragment.org.adempiere.ui.zk:osgi.bundle was found in resourceMap file:/C:/src/idempiere-release4.1/org.adempiere.sdk-feature/adempiere.rmap

  ERROR   [0004] : No suitable provider for component jpiere.fragment.org.adempiere.ui.zk:osgi.bundle was found in searchPath orbit

    ERROR   [0004] : Rejecting provider p2(${url.orbit}[http://download.eclipse.org/tools/orbit/downloads/drops/R20150124073747/repository]): No component match was found

    ERROR   [0004] : Rejecting provider p2(${url.orbit.neon}[http://download.eclipse.org/tools/orbit/downloads/drops/R20160520211859/repository/]): No component match was found

  ERROR   [0004] : No suitable provider for component jpiere.fragment.org.adempiere.ui.zk:osgi.bundle was found in searchPath extend.workspace・・・・・・・・・・・・・・・・・・・

上記のようなエラーが表示されたら、一度、JPiereのプラグインをインストールパッケージ含める設定を削除してから、Materializeを実行してみて下さい。エラーが解消される事があります。Materializeを実行した後で、再度JPiereのプラグインをインストールパッケージに含めて下さい。

iDempiere6.1以上に必要なPOMファイルの修正

iDempiere6.1からビルドツールにMavenが採用された事に伴い、POMファイルを適切に設定する必要があります。

JPiereのプラグインプロジェクトにはすべてPOMファイルがあり、親のPOMファイルとしてiDempiereのorg.idempiere.parentプロジェクト内のPOMファイルを指定しています。このPOMファイルへの相対パスを適切に修正して下さい

iDempiere6.1以上でJPiereをインストールパッケージに含めるためのPOMファイルの修正

iDempiere6.1よりビルドツールがMavenになった事に伴い、JPiereのプラグインをiDempiereのインストールパッケージに含めるためには、org.adempiere.server-featureプロジェクトにあるfeature.xmlの編集に加えて、iDempiereのプラグインプロジェクト群がある直下のPOMファイルに<module>タグとしてJPiereのプラグイン群を追加設定する必要があります。

例:  ※赤字が追加設定

<module>org.idempiere.p2</module>

<module>${idempiere.target}</module>

<module>../../src/jpiere/JPBP/jpiere.base.plugin</module>

<module>../../src/jpiere/JPFS/jpiere.fragment.org.adempiere.base</module>

<module>../../jpiere/JPFS/jpiere.fragment.org.adempiere.report.jasper.library</module>

<module>../../src/jpiere/JPFS/jpiere.fragment.org.adempiere.server</module>

<module>../../src/jpiere/JPFS/jpiere.fragment.org.adempiere.ui.zk</module>

<module>../../src/jpiere/JPMS/jpiere.modification.org.adempiere.base</module>

<module>../../src/jpiere/JPMS/jpiere.modification.org.adempiere.ui.zk</module>

<module>../../src/jpiere/JPPS/jpiere.plugin.delete</module>

<module>../../src/jpiere/JPPS/jpiere.plugin.webui.dashboardgadget</module>

<module>../../src/jpiere/JPPS/jpiere.plugin.webui.formwindow</module>

<module>../../src/jpiere/JPPS/jpiere.plugin.webui.matrixwindow</module>

<module>../../src/jpiere/JPPS/jpiere.plugin.pivotwindow/jpiere.plugin.webui.pivotwindow</module>

<module>../../src/jpiere/JPPS/jpiere.plugin.pivotwindow/jpiere.plugin.webui.pivotwindow.fragment</module>

<module>../../src/jpiere/JPPS/jpiere.plugin.webui.simpleinputwindow</module>

<module>../../src/jpiere/JPPS/jpiere.plugin.webui.wysiwygeditor</module>

</modules>

これで、インストールパッケージにJPiereを含める事ができます。

インストールパッケージの作成方法は下記を参照して下さい。

関連するコンテンツ