Build the iDempiere Project using Eclipse with buckminster

This tutorial explains the setup of an development environment for building the iDempiere project.

First download a the newest Helios(3.6) version of Eclipse. Be careful Helios is not the newest version of Eclipse but you need the newest version of Helios 3.6.2.x.

Now start Eclipse and install the following plugins.

  • buckminster core
  • buckminster maven
  • buckminster pde
  • mecurialeclipse (optional if you want to commit out of eclipse)

——>

Update (2014-06-03):

I just tested this tutorial with Java 1.7.0 and Eclipse Kepler SP2 (4.3) on my Mac Book and it worked like a charm.
For all who are using the new Eclipse release this is possible, too.
Here is the Buckminster update pages I used for installing the plugins:
http://download.eclipse.org/tools/buckminster/updates-4.3

<——–

Next step is to download the sources via mecurial:
hg clone https://bitbucket.org/idempiere/idempiere idempiere

This new created directory needs to be your workspace in Eclipse. You can select this at startup of Eclipse.

Create a new target platform in the Eclipse preferences.

Create a new empty directory within your workspace where all the other stuff is located now called: targetPlatform

Preferences -> Plug-in Development -> Target Platform -> Add

Follow the steps on the screenshots:

target definition
 
Close the preferences window if you are done and right click into the project explorer and click import.
Choose buckminster:
And click Finish to start the process. This takes a while.
You Eclipse should look something like this now:
If you want to start the java client out of eclipse now you can do this by selecting the org.adempiere.ui.swing package and right click -> run as -> Eclipse application.

Copyright © 2011 - All Rights Reserved

26 thoughts on “Build the iDempiere Project using Eclipse with buckminster

  1. Redhuan D. Oon

    I find your blog very resourceful. Will certainly refer to here for the right technical stuff concerning the critical iDempiere sub-project of porting the ADempiere suite onto the OSGi framework.

    Reply
  2. danutc

    Hi

    I tried your tutorial with eclipse-jee-indigo-SR1-win32 and jdk1.7.0_01. All works fine except the buckminster materialize has few errors:

    ERROR [0005] : java.lang.IllegalArgumentException: URI has an authority component
    ERROR [0005] : java.lang.IllegalArgumentException: URI has an authority component
    ERROR [0013] : java.lang.IllegalArgumentException: URI has an authority component

    In Buckminster Component Query dialog I click Next (not Finish) and I find that a number of component specifications are unresolved:

    What do you think could be the problem?

    Thanks
    Dan

    Reply
  3. danutc

    for the post above the unresolved bundles are:

    com.springsource.slf4j.api
    org.eclipse.equinox.registry
    com.springsource.javax.xml.ws
    org.apache.poi

    Reply
    1. Banym Post author

      Hi,

      are all packages located in your workspace? Or do you try to materialize a .cquerry from outside your workspace?

      Regards,

      Dominik

      Reply
  4. danutc

    Hi

    In file idempiere\org.adempiere.sdk-feature\adempiere.cquery the entries for

    com.springsource.slf4j.api
    com.springsource.javax.xml.ws
    org.apache.poi

    are different from others. There is an xml element like:

    cq:property key=”jar.version” value=”xxx”

    Looks like my environment does not handle this syntax of the requested jars are not available anymore.

    org.eclipse.equinox.registry appears to be a different case.

    Could the problem be caused by using a current version of eclipse / jdk?

    Regards
    Dan

    Reply
    1. Banym Post author

      Hi,

      I used Indigo for the tutorial. As long as you are using Buckminster 3.6 there should no problem. Maybe you should post your problem on
      http://red1.org/adempiere there are the real Buckminster experts for the iDempiere setup.

      Regards,

      Dominik

      Reply
  5. danutc

    Thanks, I already considered to post on http://red1.org/adempiere.

    To post I need to log in therefore I need to register first. When I try to log in I get the message:

    The specified username is currently inactive. If you have problems activating your account, please contact a board administrator.

    But I can not contact a board administrator without being logged in. I tried to contact Red1 on his admin email for red1.org domain without success.

    I noticed that you have few posts on forum. Would you please do me the favor and contact a forum administrator to let them know that user danutc can not login?

    Regards
    Dan

    Reply
    1. Banym Post author

      Hi,

      I will talk to Redhuan to activate your account.
      You can join the irc channel on freenode #idempiere, too.

      Regards,

      Dominik

      Reply
  6. chris ian

    I tried to follow your instruction but I got an error in importing buckminster. this is the error
    org.adempiere.sdk:eclipse.feature:unresolved

    any ideas how to solve this? :)

    dellph

    ERROR [0001] : No suitable provider for component org.adempiere.sdk:eclipse.feature was found in resourceMap file:/home/chris/workspace/idempiere/org.adempiere.sdk-feature/adempiere.rmap
    ERROR [0001] : No suitable provider for component org.adempiere.sdk:eclipse.feature was found in searchPath workspace.bundle.project
    ERROR [0001] : Rejecting provider local({0}/{1}[/home/chris/workspace/org.adempiere.sdk]): Components of type eclipse.feature are not supported
    ERROR [0001] : No suitable provider for component org.adempiere.sdk:eclipse.feature was found in searchPath workspace.feature.project
    ERROR [0001] : Resolution attempt ended with exception: Provider local(/home/chris/workspace/org.adempiere.sdk-feature): Missing CSpec source required by component type eclipse.feature
    ERROR Provider local(/home/chris/workspace/org.adempiere.sdk-feature): Missing CSpec source required by component type eclipse.feature

    Reply
    1. Banym Post author

      Hi dellph,

      are all the folders you checked out form mercurial located in your workspace?
      For me it looks like you have an subfolder idempiere in your workspace located on /home/chris/workspace/idempiere/

      You can try to change your workspace at start time from eclipse to /home/chris/workspace/idempiere/ or you try to copy all the folders located in /home/chris/workspace/idempiere/ to /home/chris/workspace/ and start eclipse with this workspace.

      Regards,

      Dominik

      Reply
  7. chris ian

    Dominik,

    Thanks a lot now its working. but its to messy :) my workspace is full of folders. its does they would be? Have you tried idempiere in a production environment or just testing?

    dellph

    Reply
    1. Banym Post author

      Hi Chris,

      no problem. You can create a total new workspace or change your workspace to the folder where all the packages are located. It’s up to now important that all folders are located in the used workspace when you try to materialize the buckmister file.

      I only used it for testing up to now.

      Regards,

      Dominik

      Reply
  8. chris ian

    Hello Dominik,

    Its to soon i said its ok :( there is another error coming.

    ERROR [0011] : No suitable provider for component com.springsource.org.apache.xerces:osgi.bundle/[2.9.1,3.0.0) was found in resourceMap file:/home/chris/idempiere/org.adempiere.sdk-feature/adempiere.rmap
    ERROR [0011] : No suitable provider for component com.springsource.org.apache.xerces:osgi.bundle/[2.9.1,3.0.0) was found in searchPath spring.external.maven
    ERROR [0011] : Rejecting provider maven2(http://repository.springsource.com/maven/bundles/externalhttp://repository.springsource.com/maven/bundles/external): No component match was found
    ERROR [0011] : No suitable provider for component com.springsource.org.apache.xerces:osgi.bundle/[2.9.1,3.0.0) was found in searchPath workspace.bundle.project
    ERROR [0011] : Resolution attempt ended with exception: Provider local(/home/chris/idempiere/com.springsource.org.apache.xerces): Missing CSpec source required by component type osgi.bundle
    ERROR Provider local(/home/chris/idempiere/com.springsource.org.apache.xerces): Missing CSpec source required by component type osgi.bundle
    ERROR [0011] : No suitable provider for component com.springsource.org.apache.xerces:osgi.bundle/[2.9.1,3.0.0) was found in searchPath workspace.feature.project
    ERROR [0011] : Rejecting provider local({0}/{1}-feature[/home/chris/idempiere/com.springsource.org.apache.xerces-feature]): Components of type osgi.bundle are not supported
    ERROR [0013] : No suitable provider for component com.springsource.org.apache.xerces:osgi.bundle/[2.9.1,3.0.0) was found in resourceMap file:/home/chris/idempiere/org.adempiere.sdk-feature/adempiere.rmap
    ERROR [0013] : No suitable provider for component com.springsource.org.apache.xerces:osgi.bundle/[2.9.1,3.0.0) was found in searchPath spring.external.maven

    the full error is in here http://pastebin.com/dH0xni3z

    any idea what i miss?

    dellph

    Reply
  9. Daniel T

    How important is the Eclipse/Buckminster version to get this working? I’m running Indigo SR2 and Buckminster 3.7 and I get 3671 java problems…
    The first 100 and probably more are of this type:

    Description Resource Path Location Type
    Access restriction: The constructor TestCase(String) is not accessible due to restriction on required library org.zkoss.zk.library/lib/junit.jar AccessSqlParserTest.java /org.adempiere.base/src/org/compiere/model line 38 Java Problem

    Reply
  10. Daniel T

    Finally I got it working after reading the instructions on Carlos wiki.
    DON’T clone the idempiere-repo from inside eclipse. That was my problem. If the idempiere repo is cloned from within eclipse, it automatically tries to add all the subprojects in the repo.
    SO:
    FIRST clone the repo outside of eclipse
    THEN materialize using Buckminster in eclipse.
    The versions of Eclipse and Buckminster doesn’t seem to be a problem.

    Reply
  11. Mit

    Hi I am able to run install.app successfully following all steps mentioned in site. but when i run server.product, idempiere hangs after

    [INFO] Initializing c3p0 pool… com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 2, acquireRetryDelay -> 1000,

    server is not progressing. i am using jdk jdk1.6.0_33

    Reply
  12. Gordan

    I was trying build idempiere with version 1.0.c and get this error:

    ERROR [0028] : No suitable provider for component org.adempiere.webstore:osgi.bundle was found in resourceMap file:/home/nadrog/mercurial-2.7/idempiere/org.adempiere.sdk-feature/adempiere.rmap
    ERROR [0028] : No suitable provider for component org.adempiere.webstore:osgi.bundle was found in searchPath workspace.bundle.jar
    ERROR [0028] : Rejecting provider p2(file:///{0}/lib[file:////home/nadrog/mercurial-2.7/idempiere/lib]): No component match was found
    ERROR [0028] : No suitable provider for component org.adempiere.webstore:osgi.bundle was found in searchPath orbit
    ERROR [0028] : Rejecting provider p2(http://download.eclipse.org/tools/orbit/downloads/drops/R20110523182458/repository/http://download.eclipse.org/tools/orbit/downloads/drops/R20110523182458/repository/): No component match was found
    ERROR [0028] : No suitable provider for component org.adempiere.webstore:osgi.bundle was found in searchPath workspace.bundle.project
    ERROR [0028] : Resolution attempt ended with exception: CSpec org.adempiere.webstore, attribute bin.includes_0 already defines the path plugin.xml
    ERROR CSpec org.adempiere.webstore, attribute bin.includes_0 already defines the path plugin.xml
    ERROR [0028] : No suitable provider for component org.adempiere.webstore:osgi.bundle was found in searchPath workspace.feature.project
    ERROR [0028] : Rejecting provider local({0}/{1}-feature[/home/nadrog/mercurial-2.7/idempiere/org.adempiere.webstore-feature]): Components of type osgi.bundle are not supported
    Attempt to use an unresolved node. Request is org.adempiere.webstore:osgi.bundle

    Reply
    1. Banym Post author

      Hi,

      this tutorial was for an earlier version than the final 1.0.0c. Maybe ask in the official iDempiere forum and check if the build process has changed in some way.

      Btw. there are binaries for the 1.0.0c so you don’t need to build it by your own.

      Regards,

      Dominik

      Reply
    2. celia

      Hi,friend,how do your idempiere development evironment go on ? I have met the same problem with you which brought me a lot of trouble.Can you give me a hand?

      Reply
  13. Indra

    I follow your instruction on my mac os x mavericks 64 bit. It generate file idempiereServer.cocoa.macosx.x86_64.zip. Configure path and database as well. After running using idempiere-server.sh, but I cannot found /webui context path. Can you tell me what’s wrong with it? Which one should I check and confirm? Thank you.

    Reply
    1. Dominik Zajac Post author

      Hi Indra,

      are you building the current 2.0 version or the old 1.0 version?
      I will check on the new version and update the tutorial if there is an update necessary.

      Did you import the database before running the server?

      Regards,

      Dominik

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>