dram.me

搭建iDempiere开发环境

本文描述iDempiere基于Eclipse的开发环境搭建流程,如果只是试用,可以参考这里

  1. 自https://www.microsoft.com/openjdk下载安装OpenJDK 11;

  2. 自https://www.eclipse.org/downloads/packages下载解压Eclipse 2021‑06 R(IDE for Enterprise Java and Web Developers);

  3. 打开Eclipse,指定工作环境目录,如:C:/workspace/idempiere;

  4. 在Eclipse欢迎页面,点击Checkout projects from Git,选择Clone URI,指定URI为https://github.com/idempiere/idempiere.git,点击Next,目标目录指定为:C:/git/idempiere,再点击Next,完成仓库克隆;

  5. 点击Eclipse菜单Project > Build Automatically,禁用自动编译;

  6. 点击Eclipse菜单Window > Preferences,选择General > Workspace,设置Text file encoding为UTF-8,New text file line delimiter为Unix;

  7. 点击Eclipse菜单Window > Preferences,选择Java > Compiler,设置Compiler compliance level为11;

  8. 点击Eclipse菜单Window > Preferences,选择Java > Installed JREs,点击Add...,Standard VM,选择OpenJDK路径,如:C:/Program Files/Microsoft/jdk-11.0.11.9-hotspot,完成添加后在列表中选中该项;

  9. 点击Eclipse菜单File > Import...,再选择Maven > Existing Maven Projects,点击Next,选择Root Directory,如:C:/git/idempiere,导入所有项目;

  10. 在Project Explorer中,选择打开org.idempiere.p2.targetplatform > org.idempiere.p2.targetplatform.target,点击Set as Active Target Platform,这一步需要较长时间等待(注:过程中会提示安装未经验证的插件,暂不确定原因,需要点击继续安装,非则无法成功安装);

  11. 在Project Explorer中,右键点击根项目org.idempiere.main,点击菜单项 Run As > 2 Maven build...,在Goals中输入verify,再点击Run,这一步需要较长时间等待;

  12. 在Project Explorer中,右键点击根项目org.idempiere.main,点击菜单项 Maven > Update Project...。

  13. 搭建数据库,本文选择在WSL环境中搭建,PostgreSQL服务的安装过程从略,安装完成后,执行以下命令:

    % psql postgres postgres
    # create role adempiere with login password 'adempiere' ;
    # create database idempiere with owner adempiere ;
    % cd /mnt/c/git/idempiere
    % unzip -p org.adempiere.server-feature/data/seed/Adempiere_pg.jar Adempiere_pg.dmp | psql -d idempiere -U adempiere
  14. 点击Eclipse菜单Run > Run Configurations...,选择Eclipse Application > install.app,点击Run,勾选DB Already Exists,点击测试并保存;

  15. 在WSL环境中,执行以下命令,更新数据库:

    % cd /mnt/c/git/idempiere
    % bash RUN_SyncDBDev.sh
  16. 点击Eclipse菜单Run > Run Configurations...,选择Eclipse Application > server.product,点击Run,启动服务。

  17. 如果需要运行Swing客户端,可以导入idempiere-swing-client仓库,再执行Eclipse Application > swingclient.project,追加以下参数:

    -DPropertyFile=${project_loc:org.idempiere.main}/idempiere.properties
    -DIDEMPIERE_HOME=${project_loc:org.idempiere.main}
    -Dsun.java2d.uiScale=1.0
    -Dswing.useSystemFontSettings=false

命令行启动

Swing客户端启动:

"C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot\bin\java.exe" -Xms128M -Xmx256M -Dosgi.noShutdown=true -DIDEMPIERE_HOME=C:\git\idempiere -DPropertyFile=C:\git\idempiere\idempiere.properties -Dsun.java2d.uiScale=1.0 "-Dswing.plaf.metal.controlFont=Microsoft YaHei UI 14" "-Dswing.plaf.metal.menuFont=Microsoft YaHei UI 14" "-Dswing.plaf.metal.smallFont=Microsoft YaHei UI 14" "-Dswing.plaf.metal.systemFont=Microsoft YaHei UI 15" "-Dswing.plaf.metal.userFont=Microsoft YaHei UI 15" "-Dswing.plaf.metal.windowFont=Microsoft YaHei UI 15" -classpath "C:\workspace\idempiere\.metadata\.plugins\org.eclipse.pde.core\.bundle_pool\plugins\org.eclipse.equinox.launcher_1.6.200.v20210416-2027.jar" org.eclipse.equinox.launcher.Main -product org.adempiere.ui.swing.client_product -configuration file:C:/workspace/idempiere/.metadata/.plugins/org.eclipse.pde.core/swingclient.product/ -dev file:C:/workspace/idempiere/.metadata/.plugins/org.eclipse.pde.core/swingclient.product/dev.properties

Web服务启动:

"C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot\bin\java.exe" -Dosgi.noShutdown=true -Djetty.home=C:\git\idempiere\jettyhome -Djetty.etc.config.urls=etc/jetty.xml,etc/jetty-deployer.xml,etc/jetty-ssl.xml,etc/jetty-ssl-context.xml,etc/jetty-http.xml,etc/jetty-https.xml,etc/jetty-threadpool.xml -DIDEMPIERE_HOME=C:\git\idempiere -DPropertyFile=C:\git\idempiere\idempiere.properties -Dsun.java2d.uiScale=1.0 "-Dswing.plaf.metal.controlFont=Microsoft YaHei UI 14" "-Dswing.plaf.metal.menuFont=Microsoft YaHei UI 14" "-Dswing.plaf.metal.smallFont=Microsoft YaHei UI 14" "-Dswing.plaf.metal.systemFont=Microsoft YaHei UI 14" "-Dswing.plaf.metal.userFont=Microsoft YaHei UI 14" "-Dswing.plaf.metal.windowFont=Microsoft YaHei UI 14" -classpath "C:\workspace\idempiere\.metadata\.plugins\org.eclipse.pde.core\.bundle_pool\plugins\org.eclipse.equinox.launcher_1.6.200.v20210416-2027.jar" org.eclipse.equinox.launcher.Main -product org.adempiere.server.server_product -configuration file:C:/workspace/idempiere/.metadata/.plugins/org.eclipse.pde.core/server.product/ -dev file:C:/workspace/idempiere/.metadata/.plugins/org.eclipse.pde.core/server.product/dev.properties

其他

iDempiere的部分依赖包需要从sourceforge网站下载,由于下载过程中,sourceforge会重定向到镜像站,可能存在网络不稳定的情况,可以通过更改org.idempiere.p2.targetplatform.target和org.idempiere.p2.targetplatform.tpd中的相应URL解决,例如调整为:https://cfhcable.dl.sourceforge.net/project/jasperstudio/updatesite/6.17.0/

更新

  • 2021-08-21

    1. 添加Swing客户端启动说明;
  • 2021-09-05

    1. 说明sourceforge网络不稳定的解决方案;
  • 2021-10-16

    1. 添加基于开发环境的App和Web启动说明;