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.

...

Warning
titleUnder development

This feature is still being developed and tested, might not work as expected

Building Specific Versions of CloudStack

Warning
titletemporary

Follow the following wiki page for building specific versions of CloudStack from source code.

Versions covered: 4.0 and above

Checkout Building where we document building process for specific version of CloudStack such as 4.0 oss/nonoss etc.

Temporary Build Process on ASF 4.0

Warning
titletemporary

The project is migrating from ant/waf to maven next to some changes on how to do distributions and binary releases. Below are the instructions used until the 4.1.0 version was set on master. Most of these instructions are still valid for 4.1.0, but check back regularly as maven might introduce some changes to the build process

This build process is based on ant, waf and maven. In future, we'll try to have maven do everything for us.

Code Block

$ cd incubator-cloudstack
$ mvn -P deps # gets
$ ant clean-all build-all
$ ant deploy-server # ant deploy-server before you deploydb
$ ant deploydb # checkout how to deploy db with mvn above; usual ant stuff :)

To buid with nonoss plugins we need to apply two patches(0001-fix-nonoss-build.patch and 0002-BUILD-nonoss-libs-for-CloudStack.patch):

...

Packaging

Building RPM packages

Use waf to build packages for linux systems that use rpms, like RedHat, CentOS and fedora.

...

Code Block
$ mvn install -P deps && dpkg-buildpackage

WIP: Package using deb profile (feature under development uses jdeb plugin, in https://github.com/bhaisaab/incubator-cloudstack/tree/debs-maven debs-maven branch):

...

Development with a IDE

Good Ol' Terminal

Zsh/Bash/Emacs/Vim/Grep/Sed/Awk/Javac...

Code Block

$ sh deps/install-non-oss.sh

$ mvn -Dnonoss install

$ ant debug # Good ol' way of doing things

IntelliJ IDEA

Following Building CloudStack section above.

IntelliJ IDEA

Import the project as Maven project. Build with maven, set socket type debugger on port 8787, follow Building CloudStack section above.FIXME: Add on how to use IntelliJ IDEA with CS, building, debugging, editing, git checkouts

Eclipse

See Using Eclipse With CloudStack

...