...
Note: if you just want to try out Isis then there's no need to built it first; just use our quickstart maven archetype
...
Introduction
The following assumes that you've set up your development environment; see SettingUpDevelopmentEnvironment if not.
Isis is built using Maven, so you should then be able to get going using a simple mvn clean install
two commands:
mvn clean install
mvn clean install -D modules=release
The first command builds all the modules that make up the framework (and will take a good while to run), while the second builds the 'release' module (a POM that defines a consistent set of versions of modules that run together).
However, there is a little more to it than that, because we do have a number of profiles which allow the build to be tailored in various ways. Therefore, have a look at the table below, then look at the various use cases listed further down the page.
...
Once you've got the build going, move onto SmokeTest.
Prereqs
There If you want to build the Maven site (as opposed to just building the code) then there is one dependency that must be installed manually into your local repo. This is JIMI, which is needed by the docbkx-maven-plugin to embed images into the output PDFs. You can skip this if you'll never intend to build the site (the mvn site-deploy
command).
The steps are:
- download JIMI from http://java.sun.com/products/jimi/
- download jimi1_0.zip
- unzip
- install the
JimiProClasses.zip
as the JAR:- then install:
mvn install:install-file -D groupId=com.java -D artifactId=jimi -D version=1.0 -D packaging=jar -D file=Jimi/JimiProClasses.zip
- then install:
Maven Profiles
| applib | core | defaults | runtimes | progmodel | profilestores | securityalternatives | viewer | release | support | release | examples | site-skin |
|
|
|
| Description |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
standard | Y | Y | Y | Y | Y | Y | Y |
|
|
|
| Y | Y | Y | Y | The standard set for a smoke test; if this builds we're probably ok. In fact, are also modules that make up the site, ie | ||
all | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y |
|
|
| Every module that can be built using | ||
skin |
|
|
|
|
|
|
|
|
|
| Y | Y | Y |
|
| Prereq for running site-deploy | ||
applib | Y |
|
|
|
|
|
|
|
|
|
| Y | Y | Y | Y | Just the applib module | ||
core |
| Y |
|
|
|
|
|
|
|
|
| Y | Y | Y | Y | Just the core modules | ||
runtimes |
|
| Y |
|
|
|
|
|
|
|
| Y | Y | Y | Y | Just the runtime implementations | ||
progmodel | defaults |
|
| Y |
|
|
|
|
|
|
| Y | Y | Y | Y | Just the defaults modules progmodel implementations | ||
profilestores | alternatives |
|
|
| Y |
|
|
|
|
|
| Y | Y | Y | Y | Just the alternatives modules profilestore implementations | ||
security | viewers |
|
|
|
| Y |
|
|
|
|
| Y | Y | Y | Y | Just the viewer modules. viewer security implementations | ||
viewers |
|
|
|
|
|
| Y |
|
|
|
| Y | Y | Y | Y | Just the viewer modules. Added for convenience | ||
release |
| support |
|
|
|
|
| Y |
|
|
| Y | Y | Y | Y | Just the support release modules. | ||
support |
| release |
|
|
|
|
|
| Y |
|
| Y |
|
|
| Just the release support modules. | ||
examples |
|
|
|
|
|
|
|
|
| Y |
| Y | Y |
|
| Just the examples modules. |
Notes:
- most profiles that support
mvn clean install
also support-D build=full
(basically, also builds Javadoc JARs). The exception is any profile that includes the 'release' module (we hit problems building javadoc for 'release'; it also doesn't really make sense). - similarly, most profiles supporting
mvn site-deploy
also support-D site=full
(basically, full reports, Javadoc, JXR, metrics, code coverage etc). The exception again is those profiles including 'release' - the prereqs to building the site are (a) to build the skin, and (b) to install the JIMI package into the local repo using
mvn install:install-file -D groupId=com.java -D artifactId=jimi -D version=1.0 -D packaging=jar -D file=/path/to/file
- running
site-deploy
also requires specifying where to deploy to. To deploy locally, use-D deploy=local
, which will deploy to/tmp/m2-sites/isis
.
Typical Use Cases
The first time you run these, you'll need to omit the -o
(offline) flag in order to download plugins and dependencies. Thereafter though the -o
flag is strongly recommended!
Use case | Command |
---|---|
Quick smoke testbuild | |
Build 'release' module (prereq for example apps) | |
Build everything | |
Site skin (prereq to building sites) | |
Quick build of site + docs, deploy locally | |
Full build of site + docs, deploy locally | |
Quick build + site + docs for single module (eg, applib) | |
...