How to Build RichFaces 4.x

These instructions will walk through how to build the RichFaces 4 project.

 

 

 

These instructions are also closely related to some other useful wiki pages:

 

 

Build Project Modules

 

Building Separated Modules

 

Select a module you want to build across RichFaces GitHub repositories: https://github.com/richfaces4

 

  • Clone module locally (subsiitute the module name for [MODULE] in the following commands):
    • Anonymous
git clone git://github.com/richfaces4/[MODULE].git
    • Integration Managers:
git clone git@github.com:richfaces4/[MODULE].git
  • run maven installation from the [MODULE] directory:
mvn install

 

All resources and dependencies needed for build separated modules will be fetched from JBoss Maven repository (in case of problems, check your your settings.xml).

 

Building Whole Core Project at Once

  • Clone a RichFaces Build Root project from GitHub
    • If you would like to develop at your own and possibly provide patches back to RichFaces master, we suggest to use your own public fork of RichFaces repository and making Pull Requests against RichFaces master branch.
    • Anonymous:

 

git clone git://github.com/richfaces4/build.git
    • Integration Managers:

 

git clone git@github.com:richfaces4/build.git
  • checkout remaining modules anonymously
bash build/scripts/richgit.sh -t git
  • or fork and checkout your own modules (you will be prompted for your github password
bash build/scripts/richgit.sh -u <username> -f
  • OR checkout all Framework Modules (cdk, core, components, ...) manually in top-level directory (../build) - build process counts with flat directory structure
  • Follow this guide to configure the Jboss Maven repository if you havent done so already.
  • Execute Maven to trigger the build (first, cd into the build project folder)
mvn clean install -P build
    • Use Maven profile "release" to build full distribution and javadocs
mvn clean install -P build,release

 

  • Thats it!  The project should build, and pull down anything that is needed using maven
  • You can also import the project into many IDE's
    • Most notably using the maven integration with JBoss Tools

 

  • For building Framework supporting modules, download repositories for RichFaces Build Resources (parent, checkstyle, shade-transformers, ...) and use Maven profile "bootstrap" [LINK]

 

mvn clean install -P bootstrap

Build Options

 

Below is a listing of build options that apply to the core project build for RichFaces 4.0.  See RichFaces 4.0 Build Directory Structure for more on the RichFaces 4.0 directory structure.

-DskipTests=true

This is the standard maven command that will cause all modules to skip their unit and functional tests.  This is sometimes useful for rapid builds.  This can not be skipped prior to checking in source code.

-Dcheckstyle.skip=true

This command will cause all checkstyle scans to be skipped.  This can be useful for in process development builds, and or to speed up a build.  This can not be skipped prior to to checking in source code.

-Dskip-source

With this option set the builds will not produce source jars.

-Dskip-enforce

With this option set the builds will skip the JDK version, Maven version, and no SNAPSHOT plugin checks.

Setting JSF Implementation
RichFaces has several JSF implementations configured so that builds, tests, and releases can be made against different version of the JSF RI (Mojarra), and MyFaces.
To set the specific version to use (jsf_ri is activated if no specific value provided):
-Djsf_profile=[ jboss | myfaces ]

 

Clover

 

To generate clover reports for a module you need to have several things configured correctly.
The following maven goals and profile need to be active
clover2:aggregate clover2:clover -Pclover
You also need to set:
-Dclover.license.path=<path-to-your-clover-lic>
If you have not run clover before you'll get a 30 day license, you can use the RichFaces project clover license.

 

Documentation & QE Testing Applications

The doc team and QE groups both maintain their own build instructions.  These can be very useful to explore a new corner of the RichFaces project.