How to setup build system - dependencies and core modules building.
Preparations
First of all install Java SDK, version 1.5.0 or higher.
http://java.sun.com/j2se/1.5.0/download.jsp
Be sure you have set $JAVA_HOME pointing to java installation directory and $JAVA_HOME/bin directory is in your $PATH.
Execute 'java -version' if you can see following output go to the next step:
java version "1.5.x_xx" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.x_xx-xxx) Java HotSpot(TM) Client VM (build 1.5.x_xx-xxx, mixed mode, sharing)
To build cyklotron, you need to install Apache Maven first. We strongly recommend using the most recent stable version (1.1 Beta 1, at the time of writing). Building with older version is possible but requires tweaking configuration files, and we will not provide any support in this regard.
Set $MAVEN_HOME to point to maven directory and add $MAVEN_HOME/bin to your execution $PATH.
Execute 'maven -v' to assure you did it correctly.
Non distributable dependencies
Then you need to download some dependency jars and put it into your local maven repository. On Unix systems it is normally $HOME/.maven/repository/ Consult Maven documentation for more information.
name |
url |
local repository path |
|---|---|---|
Java Mail 1.3.2 |
javamail/jars/mailapi-1.3.2.jar |
|
Java Activation Framework 1.0.2 |
jaf/jars/activation-1.0.2.jar |
|
Java Transaction API 1.0.1b |
jta/jars/jta-1.0.1b.jar |
|
J2EE Connector Architecture 1.5 |
connector/jars/connector-1.5.jar |
It happens that sun provide jar archives with zip extension.
All the remaining dependencies should be dowloaded automatically by Maven.
Be prepared that about 20mB of jars will be downloaded during the first build cycle.
Getting the source
All needed sources are located in following repositories:
host |
cvs root |
login |
module name |
|---|---|---|---|
objectledge.org |
/cvsroot/coral |
anoncvs |
coral-api |
objectledge.org |
/cvsroot/coral |
anoncvs |
coral-browser |
objectledge.org |
/cvsroot/coral |
anoncvs |
coral-common |
objectledge.org |
/cvsroot/coral |
anoncvs |
coral-datatypes |
objectledge.org |
/cvsroot/coral |
anoncvs |
coral-maven-plugin |
objectledge.org |
/cvsroot/coral |
anoncvs |
coral-reactor |
objectledge.org |
/cvsroot/coral |
anoncvs |
coral-ri |
objectledge.org |
/cvsroot/coral |
anoncvs |
coral-web |
objectledge.org |
/cvsroot/ledge |
anoncvs |
ledge-common |
objectledge.org |
/cvsroot/ledge |
anoncvs |
ledge-components |
objectledge.org |
/cvsroot/ledge |
anoncvs |
ledge-container |
objectledge.org |
/cvsroot/ledge |
anoncvs |
ledge-forms |
objectledge.org |
/cvsroot/ledge |
anoncvs |
ledge-lgpl |
objectledge.org |
/cvsroot/ledge |
anoncvs |
ledge-maven-plugin |
objectledge.org |
/cvsroot/ledge |
anoncvs |
ledge-reactor |
objectledge.org |
/cvsroot/ledge |
anoncvs |
ledge-web |
objectledge.org |
/cvsroot/cyklotron |
anoncvs |
cyklotron-common |
objectledge.org |
/cvsroot/cyklotron |
anoncvs |
cyklotron-core |
objectledge.org |
/cvsroot/cyklotron |
anoncvs |
cyklotron-ui |
objectledge.org |
/cvsroot/cyklotron |
anoncvs |
cyklotron-reactor |
objectledge.org |
/cvsroot/cyklotron |
anoncvs |
cyklotron-webapp |
To get them from command line for each listed module type:
cvs -z3 -d :pserver:<LOGIN>@<HOST>:<CVSROOT> co <MODULE NAME>
Invoking maven
To build all projects comprising a product (ledge, coral or cyklotron), you should enter the corresponding -reactor directory, and in case of release builds execute:
maven multiproject:install
and case of development builds execute:
maven multiproject:install-snapshot
To build a single project enter an apropriate project directory and execute an command apropriate for the project type
project name suffix |
release build |
development build |
|---|---|---|
-common |
||
-reactor |
||
-webapp |
maven war:install |
maven war:install-snapshot |
-plugin |
maven plugin:install |
maven plugin:install-snapshot |
none of the above |
maven jar:install |
maven jar:install-snapshot |
First time building
If you build Cyklotron for the first time you should take care of building sequence due to projects dependencies. Follow commands below to assure you do it right.
... >cd ledge-reactor >maven multiproject:install-snapshot >cd ../coral-reactor >maven multiproject:install-snapshot >cd ../ledge-forms >maven jar:install-snapshot >cd ../cyklotron-reactor >maven multiproject:install-snapshot >cd ../cyklotron-webapp >maven war:install
No error appeared on the screen means you've finished building Cyklotron CMS.
The web application archive 'cyklotron-webapp.war' is already waiting for you in target subdirectory.
Annoyed with repeated SNAPSHOT downloads?
First, use a http proxy if you have one near by. It really boosts performance. To configure it, add the following entries into your global build.properties file (username and password are optional, leave them out if you don't need them):
maven.proxy.host=... maven.proxy.port=... maven.proxy.username=... maven.proxy.password=...
Another option is to tell maven that you are working offline. If you wan't to do it just for single run, insert -o as the first argument on the command line. If you want to set it permanently, add the following to your build.propreties file, eiter globally, or in the *-common project directories.
maven.mode.online=false