JPiereの開発環境構築

iDempiereトレーニング研修

iDempiereの開発環境構築

JPiereの開発環境を構築するには、その前にiDempiereの開発環境が必要です。下記のコンテンツを参考にiDempiereの開発環境を構築して下さい。

iDempiere6.1以上の開発環境の構築

Eclipseによる開発環境の構築(iDempiere5.1まで)

 

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

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

【補足説明】Eclipse4.6と4.7の開発環境構築

Eclipse4.6もしくは4.7を使用する場合、下記の情報も参考にして下さい。

JPiereの開発環境で使用しているiDempiereのソースコードは下記のリポジトリで公開しています。

このリポジトリはiDempiere本家のリポジトリからフォークしたままの状態のものです。1ヶ月に一回ほどを目安に、iDempiereの本家リポジトリと同期をとって最新の状態にしています。

JPiereのソースコードの取得

JPiereのソースコードは、次の2ヵ所で公開しています。どちらかから選んで開発環境を構築して下さい。

JPiereのソースコードはBitbucketで管理&公開しています。Bitbucketより、最新のJPiereのソースコードを取得する事ができます。

【補足説明】JPiereのリポジトリにあるiDempiereのソースコードについて

JPiereのリポジトリには、iDempiereのソースコードのリポジトリがいくつか、存在しています。これは、基本的にiDempiereのブランチ毎にタイムスタンプ的にソースコードを取得しているものになります。そして、その中でも、iDempiere-TipsというリポジトリとiDempiereコミュニティーがメンテナンスバージョンとしているバージョンのリポジトリは、1ヶ月に1回程度を目安に、最新のiDempiereのソースコードと同期をとっています。そしてJPiereはメンテナンスバージョンの最新のソースコードで動作するようにメンテナンスしています。

【注意】リポジトリからソースコードをクローンする際にはブランチを指定する!!

リポジトリからローカルPCにソースコードをクローンするには際には、ブランチを指定するように意識して下さい。ブランチを指定しないと、Defaultのブランチがクローンされると思いますが、DefaultのブランチはiDempiere5.1から次バージョンに向けた機能を開発するブランチとして利用されています。そのためJPiereとしてはDefaultのブランチ上で動作するようにはメンテナンスしておらず、iDempiereコミュニティーがメンテナンスバージョンとして位置付けている最新のバージョンで動作するようにメンテナンスしています。そのため、iDempiereコミュニティーがメンテナンスバージョンと位置付けているブランチを指定してクローンして下さい。

ブランチを指定するクローンの方法は下記を参照して下さい

JPiereのインストールパッケージのリリースに合わせて、JPiereのソースコードもOSDNで公開しています。

こちらは、最新のソースコードではありません。JPiereのインストールパッケージを公開した際に、その時のタイムスタンプとしてソースコードを公開しています。

【補足説明】ソースコードはリポジトリから取得するのがオススメ

ソースコードは、最新のメンテンスバージョンをリポジトリから取得する事をオススメします。良い意味で"枯れている"という事を期待して、少し古いバージョンを利用した方が良いのではないかと考える人がいますが、リポジトリにある最新のメンテナンスバージョンのブランチが一番メンテナンスされている状態ですので、既存機能については最も"枯れている"状態と言えます。

新規に追加される機能については、不具合に遭遇する可能性はありますが、新規の機能は基本的にDefaultのブランチで開発されていますので、Defaultのブランチを使用しなければ開発中の機能に関する不具合に遭遇する可能性は低くなります。

そのため、ソースコードはリポジトリから最新のメンテナンスバージョンのブランチを指定して取得する事をオススメします

JPiereの構成とリポジトリ

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

JPiereの構成
JPiereの構成

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.ui.zk

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

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

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

◆JPiereプラグインズのリポジトリ(2018年11月現在)

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

JPiereプラグインズはそれぞれ単体でiDempiereのプラグインとして使用する事ができます。

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

JPiereモディフィケーションズのリポジトリには下記のプラグインプロジェクトが含まれています(2016年5月現在)。

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

プラグインのソースコードを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.○×△)の各種プラグインの開始レベルは"5"で、自動開始は"true"。
  • JPFS(jpiere.fragment.○×△)の各種プラグインの開始レベルは"default"で、自動開始は"false"。※フラグメントプロジェクトなので変更できません。
  • JPMS(jpiere.modifications.○×△)の各種プラグインの開始レベルは"default"で、自動開始は"false"。※フラグメントプロジェクトなので変更できません。

 

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を含める事ができます。

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