Advanced topics

Nuxeo Distributions

Updated: July 17, 2023

The nuxeo-distribution Module Purpose

The nuxeo-distribution module is used for the packaging and the high-level testing of the Nuxeo Platform: Nuxeo CAP Tomcat, Shell, Core Server, Startup Wizard, Functional and Performance Tests... The key concepts are: CAP, SDK, assembly, ant-assembly-maven-plugin, NXR, WAR, Nuxeo Package, tools-nuxeo-ftest, Selenium, WebDriver, FunkLoad, Gatling.

With nuxeo-distribution, you can build from Nuxeo sources, run tests against existing distributions and much more: if you need to assemble your own distribution, you will find in nuxeo-distribution some resources, templates and samples on which to base your packaging.

You don't need to use the nuxeo-distribution module if:

You have to use nuxeo-distribution module if:

  • You want to reproduce the Nuxeo build process,
  • You work on Nuxeo source code and need a quick feedback on your changes,
  • You want to run the Nuxeo main functional or performance test suites against a given distribution.

Read the Nuxeo Core Developer Guide for more information on how to package from sources using or miming nuxeo-distribution.

The nuxeo-distribution Module Usage and Outputs

The module is used for building and testing. It is executed at the very end of the whole Platform source code build, including the addons, but before the Nuxeo Packages build and tests.

There are four kinds of products built by the nuxeo-distribution module:

  • Standalone products to embed in a final package like the Launcher (aka NuxeoCtl), the Startup Wizard.
  • Static resources like configuration templates.
  • The CAP NXR for use in package assemblies.
  • The Nuxeo CAP Tomcat distribution.

Sample usage:

  • Build all Nuxeo products without running Integration Tests:

    mvn clean package
    
    mvn clean verify -DskipTests -DskipITs
    
  • Build all Nuxeo products running Integration Tests:

    mvn clean verify
    
  • Build only the Tomcat distributions

    mvn clean package -pl :nuxeo-distribution-tomcat
    

See the nuxeo-distribution/README.md file for a detailed description of the nuxeo-distribution module usage and outputs.