JPiereの開発環境構築
ここではJPiereの開発環境を構築する方法をご紹介しています。
ページ内目次
JPiereの開発環境を構築するには、その前にiDempiereの開発環境が必要です。下記のコンテンツを参考にiDempiereの開発環境を構築して下さい。
iDempiere7.1以上の開発環境構築
iDempiere6.1と6.2の開発環境の構築
Eclipseによる開発環境の構築(iDempiere5.1まで)
【補足説明】iDempiereのバージョンとJPiereのバージョン
JPiereのバージョン番号はiDempiereのバージョン番号と同期をしています。そのため開発環境を構築する際には、同じバージョンのiDempiereのソースコードとJPiereのソースコードを使用するようにして下さい。
JPiereの開発環境で使用しているiDempiereのソースコードは下記のリポジトリで公開しています。
このリポジトリはiDempiere本家のリポジトリからフォークしたままの状態のものです。1ヶ月に一回ほどを目安に、iDempiereの本家リポジトリと同期をとって最新の状態にしています。
※2019年よりBitBucketのMercurialのリポジトリをGitHubのGitへ移行しました。
JPiereのソースコードは、次の2ヵ所で公開しています。どちらかから選んで開発環境を構築して下さい。
GitHub:JPiereリポジトリ
2019年12月より、ソースコードの管理をBitBucketのMercurialから、GitHubのGitに移行しました。
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(ジェイピエール)はiDempiere(アイデンピエレ)をベースとして次の5つに分類し、開発及び管理しています。
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プラグインズのリポジトリ(JPiere8.2~)
- jpiere.plugin.delete
- jpiere.plugin.groupware
- jpiere.plugin.webui.formwindow
- jpiere.plugin.webui.matrixwindow
- jpiere.plugin.webui.simpleinputinputwindow
【補足説明】プラグインの統合
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
JPiereプラグインズはそれぞれ単体でiDempiereのプラグインとして使用する事ができます。
JPiereモディフィケーションズはiDempiereのコアとなっているソースコードに修正を加えたい場合に、OSGiのフラグメントの機能を活用して作成したプラグイン群です。Eclipseのプロジェクトはフラグメントのベースとなるプラグイン毎に作成する必要があるため複数存在していますが、リポジトリ上は1つのリポジトリでまとめて管理しています。
JPiereモディフィケーションズのリポジトリには下記のプラグインプロジェクトが含まれています(2016年5月現在)。
- jpiere.modification.org.adempiere.base
- jpiere.modification.org.adempiere.ui.zk
JPiereコンフィギュレーションズ以外はソースコードをiDempiereの開発環境が構築されているEclipseにインポートする必要があります。
iDempiere6.1以上のインポート方法
iDempiere6.1からは、Mavenのプロジェクトとして、Eclipseにインポートする必要があります。
Eclipseのメニューバーからファイル->インポートを選択して下さい。
iDempiere5.1までのインポート方法
iDempiere5.1までは、普通のプラグインプロジェクトですので、普通のプロジェクトと同じ方法でEclipseにインポートする事ができます。
Eclipseのメニューバーからファイル->インポートを選択して下さい。
使いたいプラグイン選択肢てインポートして下さい。
プラグインプロジェクトのインポート後
JPiereのプラグインのプロジェクト名は、すべて"jpiere"からはじまるように統一していますので、プロジェクト・エクスプローラーでは一番上に配置されるのでわかりやすくなっています。
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.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のプラグインをiDempiereのインストールパッケージに含めるための設定
JPiereをインストールパッケージに含めるためにはorg.adempiere.server-featureプロジェクトにあるfeature.xmlを編集します。
プラグインタブで、追加ボタンをおし、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を含める事ができます。
インストールパッケージの作成方法は下記を参照して下さい。