ExoBuild

1 Build and deploy

The exobuild script is used for building and assembling products. Run it with --help argument form options :

exobuild --help

Use of the exobuild command: 

  exobuild --product=name
           [--version=version]
           [--update]
           [--build]
           [--exclude=modules]
           [--deploy[=server]]
           [--release[=server]]
           [--workflow[=jbpm|bonita]]
           [--enable-workflow=[bonita|jbpm]]
           [--clean-mvn-repo]
           [--database[=dialect]]
           [--dbsetup=option]


Options: 
  * --product=name     Name of the product you want to build.
                       The possible names are cs,ks,ecm,portal,ultimate,wcm,webos, ...
                       Default is portal.
  * --version=number   Allows to specify which version of the product
                       to build such as trunk, tags/2.0, branches/2.0,.... 
                       Default is trunk.
  * --update           Run a svn update before it builds.
  * --build            Compile and install the sub projects of the product,
  * --exclude          Exclude the given modules (comma separated) from compilation and fetch jars from repository
                       You can specify any module name in all,pc,jcr,ws,tools,ecm,cs,ks,portal.
                       Use this to avoid full build or when a module breaks the build
  * --deploy=server    Deploy to a given application server. Possible values are: 'all', [jbossear, tomcat, jonas, ear, jboss].
                       Default is tomcat.
  * --release=server   Release for the target application server. Produce a zip named after the current SVN revision.
                       Possible values are: 'all', [jbossear, tomcat, jonas, ear, jboss].
                       Default is tomcat
  * --clean-mvn-repo   Clean your local repository of eXo artifacts before building.
  * --database=dialect Specify target database dialect. The possible values are [db2v8, postgresql, mysql, sqlserver, db2, oracle, derby, hsqldb].
                       This will configure the appropriate JCR dialects and deploy the JDBC driver.
                       Used with --dbsetup=file option, exobuild tries to get database settings in a file named
                       database-configuration.{dialect}.xml
                       Default is hsqldb.
  * --dbsetup=option   Use this option with --database option to specify the database setup behaviour.
                       dbsetup=file will use the database and jcr files you provided.
                       dbsetup=ask allow you to enter the connection url , username and password of the database server.
                       dbsetup=defaults is the default option if dbsetup is not specified and will override settings by those defined in Database.js
  * --workflow=engine  (For the old verions of ECM from 2.0 to 2.2.x) Specify the workflow engine to bundle with the product. The possible values are bonita or jbpm.
                          This option is only used for products that use workflow. Default engine is jbpm
  * --enable-workflow=engine 
                       (Since DMS 2.3) Specify the workflow engine to bundle with the product.
                       The possible values are bonita or jbpm. This option is only used for
                       products that use workflow. Default engine is bonita.
  * --help             To print this help. Also you can use option: '-help' or 'help' or '?'

For Example:

#build ecm and all its dependencies  and deploy
     $exobuild --product=ecm --build --deploy  
     
     #build ecm but exclude jcr and portlet container, the jcr and pc  artifact  will  be 

     #downloaded from the maven server
     $exobuild --product=ecm --clean-mvn-repo --exclude=jcr,pc --build --deploy  

     #build ecm and all its dependencies,  to  exo-tomcat,  exo-jonas, exo-jboss and create the release zip file 
     $exobuild --product=ecm --build --release
About --release : release needs a working svn command as it grabs the revision number to build an archive.

Sometimes you can have problems during build, due to outdated libraries in maven repository. Clean the suspicious libraries, or, at the very worst, all maven repository (in this last case the build will re-download all the dependant libraries and therefore will take much more time than normal build).

For example, the portlet container 2.0 is dependant on portlet API 2.0. But this API is still in draft version, and so on the number version won't change until final 2.0, even if content of library do. If portlet container doesn't build. Try to remove "javaxportletportlet-api2.0" in maven repository and re-build.

2 Release Options

--release=server
server can be:
tomcat: packages a tomcat zip
jonas: packages a jonas zip
jboss: packages a .sar
jbossear: packages an ear for jboss
ear: packages an ear for websphere

3 Single module build

If you want to build a single module, you can use exoproject command:

$cd ~/java/eXoProjects/portal/trunk
$exoproject --deploy=module

This will build the module and deploy it to your exo-working server.

Tags:
Created by Patrice Lamarque on 01/14/2009
Last modified by Sören Schmidt on 09/29/2009

Products

generated on Thu Sep 02 15:41:23 UTC 2010

eXo Optional Modules

eXo Core Foundations


Copyright (c) 2000-2010. All Rights Reserved - eXo platform SAS
2.4.30451