Engwar

Chintana Wilamuna's weblog

Building WSO2 Carbon from source

Recently I built WSO2 Carbon. Here’s how I did it with some help from the carbon mailing list :-) Do stick to the same build order. I did this on an Ubuntu machine. If you happen to see maven complaining about running out of memory just do,

$ export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m"

First step, build Axis2 1.4.1 from the custom branch

$ svn co http://svn.wso2.org/repos/wso2/branches/axis2/v1.4.1 axis2-1.4.1-branch

Next find the revision of the branch,

$ cd axis2-1.4.1-branch
$ svn info
Path: .
URL: http://svn.wso2.org/repos/wso2/branches/axis2/v1.4.1
Repository Root: http://svn.wso2.org/repos/wso2
Repository UUID: a5903396-d722-0410-b921-86c7d4935375
Revision: 32422
Node Kind: directory
Schedule: normal
Last Changed Author: amila
Last Changed Rev: 30518
Last Changed Date: 2009-02-06 10:39:03 +0530 (Fri, 06 Feb 2009)

Revision 30518 have an inconsistency in modules/addressing/pom.xml where the addressing artefact ID is wrong. You have to get this patch and apply it. Download, save it somewhere and do the following to apply the patch.

$ cd modules/addressing
$ patch -p0 < /home/chintana/addressing-pom.patch
$ cd ../..

Now you're at the Axis2 root level. Before building at the root level you have to build two plugins,

$ cd modules/tool/axis2-mar-maven-plugin
$ mvn clean install
$ cd ../axis2-aar-maven-plugin/
$ mvn clean install
$ cd ../../..

Back at the root level, now you can build the project,

$ mvn clean install -Dmaven.test.skip=true

Next step is to build Rampart from the custom branch,

$ svn co http://svn.wso2.org/repos/wso2/branches/rampart/1.4.wso2 rampart-custom
$ cd rampart-custom
$ mvn clean install -Dmaven.test.skip=true

Build Sandesha from the custom branch,

$ svn co http://svn.wso2.org/repos/wso2/branches/sandesha2/1.4.wso2 sandesha-custom
$ cd sandesha-custom
$ mvn clean install -Dmaven.test.skip=true

Next up is Savan, again from a custom branch,

$ svn co https://svn.wso2.org/repos/wso2/branches/savan/1.0wso2v1 savan-custom
$ cd savan-custom
$ mvn clean install -Dmaven.test.skip=true

Now all the prerequisites are complete for the Carbon platform. Let's go ahead and build Carbon. It has 3 parts. carbon-orbit, carbon and carbon-components (for carbon I had to change the addressing.version property in root level pom.xml to 1.4.1),

$ svn co http://svn.wso2.org/repos/wso2/trunk/carbon-orbit
$ cd carbon-orbit
$ mvn clean install -Dmaven.test.skip=true
$ cd ..
$ svn co http://svn.wso2.org/repos/wso2/trunk/carbon
$ cd carbon
$ mvn clean install -Dmaven.test.skip=true
$ cd ..
$ svn co http://svn.wso2.org/repos/wso2/trunk/carbon-components
$ mvn clean install -Dmaven.test.skip=true

All righty! After this you can go ahead and build other products which are designed on top of Carbon such as WSO2 WSAS, WSO2 ESB etc...

  • http://www.asankama.com/ Asanka Abeysinghe

    I think if you use -Dmaven.test.skip=true flag when building carbon-orbit and carbon you need the -DfailIfNoTests=false flag as well.

  • http://engwar.com/ Chintana

    @Asanka: Hmmm, that was not necessary actually. I can build without that flag.

  • Charith Wickramarachchi

    if you use the flag -Dtest=false or -Dtest=skip to skip the tests , you need the -DfailIfNoTests=false flag

    But with -Dmaven.test.skip=true flag -DfailIfNoTests=false flag is not needed

  • http://www.ubuyudrive.com Rosa L. DeLauro

    Tech Question:
    Q

  • Hector Guilarte

    Make sure the absolute path has no spaces in it. (or a dash -) or it won’t work