Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/idempiere/idempiere/llms.txt

Use this file to discover all available pages before exploring further.

iDempiere uses OSGi (Eclipse Equinox) for its plugin architecture, allowing you to extend the system without modifying core code.

Prerequisites

Before you begin, ensure you have:
  • Java Development Kit (JDK) 17 or higher
  • Apache Maven 3.6+
  • Git
  • Eclipse IDE (recommended) or IntelliJ IDEA
  • PostgreSQL or Oracle Database

Clone the Repository

1

Fork and clone iDempiere

First, fork the iDempiere repository on GitHub, then clone your fork:
git clone https://github.com/YOUR_USERNAME/idempiere.git
cd idempiere
2

Set up the database

Create a PostgreSQL database for development:
createdb idempiere
Run the initial seed script (located in db/ddlutils/postgresql/).
3

Configure local properties

Copy the template configuration file:
cp adempiere-local-template.properties adempiere-local.properties
Edit adempiere-local.properties with your database credentials:
ADEMPIERE_DB_NAME=idempiere
ADEMPIERE_DB_SERVER=localhost
ADEMPIERE_DB_PORT=5432
ADEMPIERE_DB_USER=adempiere
ADEMPIERE_DB_PASSWORD=adempiere
4

Build with Maven

Build the entire project:
mvn clean verify
This will compile all plugins and run tests. The first build may take 10-15 minutes.

IDE Setup

Eclipse Setup

1

Import as Maven project

  1. Open Eclipse
  2. Go to File → Import → Maven → Existing Maven Projects
  3. Select the idempiere directory
  4. Eclipse will detect all plugin modules automatically
2

Set target platform

  1. Open org.idempiere.p2.targetplatform/org.idempiere.p2.targetplatform.target
  2. Wait for Eclipse to resolve dependencies
  3. Click Set as Active Target Platform
3

Create run configuration

  1. Go to Run → Run Configurations
  2. Create a new OSGi Framework configuration
  3. Name it “iDempiere Server”
  4. Select all required bundles
  5. Set VM arguments:
-Dosgi.noShutdown=true
-Dorg.osgi.framework.bootdelegation=*
-Djetty.home.bundle=org.eclipse.jetty.osgi.boot
-Djetty.etc.config.urls=etc/jetty.xml,etc/jetty-selector.xml,etc/jetty-deployer.xml

IntelliJ IDEA Setup

1

Open project

Open the idempiere directory as a Maven project in IntelliJ IDEA.
2

Configure OSGi framework

  1. Install the OSGi plugin from JetBrains
  2. Configure the Equinox framework in project settings
  3. Add all iDempiere bundles to the runtime configuration

Verify Installation

Run the iDempiere server:
./RUN_ImportIdempiereDev.sh
Once started, access the web interface at:
http://localhost:8080/webui/
Default credentials:
  • Username: SuperUser
  • Password: System

Project Structure

The iDempiere source code is organized into OSGi bundles:
idempiere/
├── org.adempiere.base/           # Core base functionality
├── org.adempiere.base.callout/   # Standard callouts
├── org.adempiere.base.process/   # Standard processes
├── org.adempiere.ui.zk/          # ZK web UI framework
├── org.adempiere.server/         # Server components
├── org.compiere.db.postgresql.provider/  # PostgreSQL provider
├── org.idempiere.webservices/    # REST/SOAP services
└── migration/                    # Database migration scripts
Each directory is an OSGi bundle with:
  • META-INF/MANIFEST.MF - Bundle metadata
  • pom.xml - Maven configuration
  • build.properties - Build configuration
  • OSGI-INF/ - OSGi Declarative Services configuration

Next Steps

Model-Driven Architecture

Understand iDempiere’s dictionary-based architecture

Creating Plugins

Build your first iDempiere plugin

Callouts

Implement field-level business logic

Processes

Create custom business processes

Contributing

Before contributing code to iDempiere core:
  1. Read the Contributing Guide
  2. Follow the Fork and Branch Workflow
  3. Use the commit format: IDEMPIERE-[####] [Ticket Description]
  4. Create a pull request for review
For questions, join the iDempiere Mattermost community.