Developing Plug-ins Without Affecting the Core
This guide explains how to develop plug-ins separately from the iDempiere core, ensuring clean separation between your customizations and the official core codebase. This approach is ideal for:
- Building plug-ins for personal, educational, or testing purposes
- Implementing customer-specific extensions without modifying core code
- Enabling clean merges of iDempiere updates without interference from plug-in code
🧰 Prerequisites
Before you begin, ensure you have:
- A working iDempiere development environment set up in Eclipse.
- Version control configured.
Instead of starting from scratch, you might want to use the scaffolding tool from iDempiere Plugin Scaffold instead. This tool provides a pre-configured structure to help you quickly set up your plug-in project, saving time and effort.
📚 Recommended Workflow
In Eclipse, go to:
File → New → Other… → Plug-in Project
Provide a custom project name (e.g.,
com.yourcompany.pluginname
).Uncheck “Use default location” and choose a custom folder outside the iDempiere core repository, such as:
idempiere-plugins/your-plugin-name
Set the plug-in target platform to Equinox and click Next
Choose a compatible Java execution environment (e.g., JavaSE-17 or later).
Disable options like "Generate an activator".
Once created, connect the project to version control:
Right-click the project → Team → Share Project
Create or select a Git repository in your plugin directory.
Instead of creating a Git repository for each of your plug-ins and fragments, you can also follow this approach:
- Create a directory on your hard drive to contain all your plug-ins and fragments.
- Initialize a single Git repository in this directory.
- Place all newly created plug-ins and fragments in this repository directory, skipping the step of creating separate repositories for each.
- This way, you maintain one consolidated repository containing all your files.
By following these tips, your plug-in development process becomes more streamlined and easier to manage.