Maven Build Profiles

From iDempiere en
Revision as of 08:22, 17 April 2026 by Etan (talk | contribs)

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.bouncy.castle-feature
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.core.runtime-feature
org.idempiere.eclipse.platform-feature
org.idempiere.equinox.p2.director-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 found in the console — this is normal and harmless. It's caused by osgi.noShutdown=true and 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.core.runtime-feature

A custom Eclipse feature created for the Maven build profiles. It aggregates all plugins from the standard core-feature modules into a single feature, while explicitly excluding extended bundles (keikai, billboard chart, datatable, pivot).

It replaces org.adempiere.server.feature in the core and extended profile .product files. The original org.adempiere.server.feature could not be used directly because it includes extended bundles (webservices, replication, payment processor) which would leak into the core and extended installers.

It also provides setup scripts (console-setup-alt, idempiere-server etc.) via build.properties root files, referencing them directly from org.adempiere.server-feature without duplicating the files.

Feature ID org.idempiere.core.runtime.feature
Location org.idempiere.core.runtime-feature/
Plugins 255 (aggregated from 9 existing features)
Excluded org.idempiere.keikai, org.idempiere.zk.billboard.chart, org.idempiere.zk.datatable, org.idempiere.zk.pivot
Used by core.product, extended.product
Cookies help us deliver our services. By using our services, you agree to our use of cookies.