Maven Build Profiles
Profiles at a Glance
| Profile | Command | Output ZIP |
|---|---|---|
core
|
mvn clean verify -P common,core
|
org.idempiere.p2.core-{version}.zip
|
extended
|
mvn clean verify -P common,extended
|
org.idempiere.p2.extended-{version}.zip
|
full (default)
|
mvn clean verify
|
org.idempiere.p2-{version}.zip
|
💡 Common profile — Shared modules used by both core and extended profiles.
💡 Full (default) build unchanged — Works exactly as before using
org.idempiere.p2.
Common Profile
Shared modules used by both core and extended profiles. Not meant to be used standalone — always combine with a tier profile: -P common,core or -P common,extended
Modules:
| Module |
|---|
org.idempiere.p2.targetplatform
|
org.adempiere.base
|
org.adempiere.base.callout
|
org.adempiere.base.process
|
org.adempiere.ui
|
org.adempiere.ui.zk
|
org.idempiere.zk.extra
|
org.idempiere.zk.breeze.theme
|
org.idempiere.zk.iceblue_c.theme
|
javax.websocket-api.fragment
|
org.idempiere.printformat.editor
|
org.idempiere.zk.billboard
|
org.adempiere.server
|
org.adempiere.eclipse.equinox.http.servlet
|
org.idempiere.jetty.osgi.boot.fragment
|
org.adempiere.report.jasper.library
|
org.adempiere.report.jasper
|
org.compiere.db.postgresql.provider
|
org.compiere.db.oracle.provider
|
org.idempiere.hazelcast.service
|
org.idempiere.felix.webconsole
|
org.apache.ecs
|
org.idempiere.tablepartition
|
org.adempiere.install
|
org.adempiere.plugin.utils
|
org.adempiere.pipo
|
org.adempiere.pipo.handlers
|
org.idempiere.ui.sso.oidc
|
org.idempiere.extension.manager
|
org.idempiere.server.runtime-feature
|
org.idempiere.eclipse.platform-feature
|
org.idempiere.equinox.p2.director-feature
|
org.idempiere.felix.webconsole-feature
|
org.adempiere.report.jasper-feature
|
org.adempiere.pipo-feature
|
org.idempiere.hazelcast.service-feature
|
org.compiere.db.provider-feature
|
org.idempiere.bouncy.castle-feature
|
org.idempiere.zk-feature
|
Core Profile
Build command:
mvn clean verify -P common,core -U
Output:
- ZIP:
org.idempiere.p2.profile\core\target\org.idempiere.p2.core-{version}.zip - P2 repository:
org.idempiere.p2.profile\core\target\repository\
Modules: All common modules, plus the following:
| Module |
|---|
org.idempiere.p2.profile/features/core
|
org.idempiere.p2.profile/core
|
Extended Profile
Build command:
mvn clean verify -P common,extended -U
Output:
- ZIP:
org.idempiere.p2.profile\extended\target\org.idempiere.p2.extended-{version}.zip - P2 repository:
org.idempiere.p2.profile\extended\target\repository\
Modules: All common modules, plus the following:
| Module |
|---|
org.idempiere.acct
|
org.idempiere.p2.profile/features/core
|
org.idempiere.p2.profile/features/extended
|
org.idempiere.p2.profile/extended
|
What's in Each Profile
| Bundle / Feature | CORE | EXTENDED | FULL (default) |
|---|---|---|---|
| Core OSGi (adempiere.base, adempiere.server) | ✅ | ✅ | ✅ |
| ZK UI (adempiere.ui.zk, zk.extra, zk.billboard) | ✅ | ✅ | ✅ |
| Database drivers (PostgreSQL, Oracle) | ✅ | ✅ | ✅ |
| Jetty, Hazelcast, Felix web console | ✅ | ✅ | ✅ |
| Pack-In / Pack-Out, Table Partitioning, SSO | ✅ | ✅ | ✅ |
| Accounting | ❌ | ✅ | ✅ |
| Payment Processor, Replication, Web Services | ❌ | ❌ | ✅ |
Launching from Eclipse IDE
Each profile has a .launch file. All three use plug-in based launching — same approach as server.product.launch.
| Launch File | Location in Repo | Runtime Workspace |
|---|---|---|
core.product.launch
|
org.idempiere.p2.profile\core\
|
runtime-core.product\
|
extended.product.launch
|
org.idempiere.p2.profile\extended\
|
runtime-extended.product\
|
💡 You will see
No application id has been foundin the console — this is normal and harmless. It's caused byosgi.noShutdown=trueand does not affect the running server.
File Structure
org.idempiere.p2.profile/
features/
core/ feature.xml pom.xml ← Eclipse Feature (eclipse-feature)
extended/ feature.xml pom.xml
core/ category.xml pom.xml ← P2 repo + installer (eclipse-repository)
core.product
core.product.launch
extended/ category.xml pom.xml
extended.product
extended.product.launch
org.idempiere.server.runtime-feature
org.idempiere.server.runtime-feature is a stripped-down version of org.adempiere.server-feature used in core and extended builds. It retains only the packaging directives in build.properties — including setup scripts, Jetty home configuration, setup data, and migration scripts — while all plugin declarations are consolidated in org.idempiere.core.feature to avoid duplication.
