Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

-SNAPSHOT is a special marker in maven that tell everybody that this particular piece of code is under development and might change at any time. Opposed to a normal versioned release like '4.0.0', a snapshot is never a stable release. Maven will often try to get a more recent version of a SNAPSHOT during compile. A stable release is fixed, once published there is no changing it anymore. Snapshots are normally used to indicate that a build is made of the HEAD or trunk of a project. Later on this page more about releases using maven.

Dependencies

Running mvn in source root will download and setup dependency jars the deps directory for use with the old ant system.

Code Block

$ mvn -P deps install

Some modules require Some modules, e.g. vmware/netscaler/netapp,  require dependencies that are not freely available or have an incompatible license. These dependencies you need to donwload yourself. See to following instructions to add them to your maven repository. 

1. Download You can download the following jars from (http://zooi.widodh.nl/cloudstack/build-dep/Image Added) and put them in the deps directory:

...

2. Go into the deps directory and run install-non-oss.sh

Code Block
$ cd deps
$ mv cloud-manageontap.jar manageontap.jar
$ ./install-non-oss.sh

Building CloudStack

Running the maven command in the top directory of the CloudStack sources will compile all sources for CloudStack. The resulting jar files will be in the directory target in the subdirectory for a particular module. The default build will have all components that depends on non opensource (non-oss) libraries disabled. If you want to enable this, just add -D nonoss to the mvn command line or see the table below for more fine-grained options. The install goal will compile all sources, make war and jars files and add he to your local repository.

...

Available profiles

Enabled by property

Requires profiles

Description

deps

 

 

Enables a convenience download for all dependencies into the deps directory, usage mvn -P deps -pl deps install

developer

 

 

Enables a convenience pom with developer functions

vmware

nonoss

 

Enables the build of vmware-base and the vmware plugin, requires vmware SDK to be present.

netapp

nonoss

 

Enables the build of the netapp plugin, requires NetApp manageontap sdk.

f5

nonoss

 

Enables the build of the f5 plugin, requires f5 iControl library

netscaler

nonoss

 

Enables the build of the netscaler plugin, requires additional libraries.

srx

nonoss

 

Enables the build of the juniper srx plugin, requires additional libraries.

Available properties

 

Required profile

Description

deploydb

 

developer

Clears and creates the cloud database in the mysql server configured utils/conf/db.properties

nonoss

 

 

Enables all modules that are not part of the standard ASF build

systemvm

 

 

Enabled the build of the systemvm.iso, requires mkisofs to be available on the commandline

For nonoss, just do a mvn -Dnonoss <goal>.

Example, if you want to build CloudStack with all ASF components and the vmware plugin, use the following command

...

Due to licensing issues, vhd-util was removed. Please download vhd-util: http://download.cloud.com.s3.amazonaws.com/tools/vhd-util

Copy vhd-util to this location in the source tree: scripts/vm/hypervisor/xenserver/vhd-util

To build the oss code(if you don't care about vmware/netscaler/netapp, use this command):

Code Block
mvn clean install

To build nonoss code:

Code Block
$ mvn clean
$ mvn install -Dnonoss

Deploying Database

Note: The following is a WIP feature, use the old Ant command for a complete refresh. This command assumes you have a proper setup in utils/conf/db.properties and the cloud user already exists on your mysql database.

...

Code Block
$ mvn -pl :cloud-client-ui jetty:run

To run a nonoss management server:

Code Block
$ mvn -pl :cloud-client-ui jetty:run -Dnonoss

Note: The following is a WIP tomcat-plugin feature, use the above jetty command for now.

...