Building BASE

NOTE! This document is outdated and has been replaced with newer documentation. See Building BASE from source code

This documentation describes how to build BASE from a local working copy of the subversion checkout.

Contents
  1. Checking out the source code
  2. Create a local configuration
  3. Ant
    1. Main build targets
    2. Other build targets
  4. Running BASE from the local installation
See also

Last updated: $Date: 2021-06-11 12:51:05 +0200 (Fri, 11 Jun 2021) $

1. Checking out the source code

The BASE source code lives in a Subversion server. It is a versioning system that enables us to keep track of all changes made to the code. You will need a client for subversion to be able to get the source code. If you are using Eclipse there is an excellent subversion plugin.

Check out the source code with the command:

svn checkout https://base.thep.lu.se/svn/trunk/ base

This will create a sub-directory base with all source files. Anonymous checkouts are allowed, but write permission is only granted to developers. The trunk version is the head of the development and should be used for testing purposes only. For information about how to get other version, including specific releases and bugfix branches, read the information on the BASE download page or check the subversion source repository directly.

2. Create a local configuration

The configuration files included with a binary distribution are located in the config/dist directory. You should never modify these files directly for your local setup. Instead, place a copy of files that you need to modify in the config/local directory. When building BASE all targets exception the 'dist' target will first check the local configuration files.

Note that the build process usually copies the configuration files to the www/WEB-INF/classes directory. The reason is that Tomcat can't read file outside the WEB-INF directory and this makes the subversion working copy identical to a binary distribution.

3. Ant

We use Ant to compile BASE. You will need at least version 1.6. All build instructions are in the build.xml file.

A build is started with the command:

ant <target>

where <target> is one of the named targets defined in the build file. You may specify multiple targets:

ant web jobagent

3.1 Main build targets

These targets works on the entire BASE source code. They may take some time to finish, but everything will be checked and recompiled if needed.

ant dev
Build everything for local use. This targets compiles the core, plugins, web application, job agent, etc. for local use. It doesn't generate javadoc documentation.
ant dist
Build everything for distribution. This target compiles everything, generates the javadoc documentation, etc. Everything is placed in the dist subdirectory.
ant package
Create compressed tar files of the distribution.
ant clean
Remove all generated files.

3.2 Other build targets

These targets are quicker to use if you know that you have only made changes to a specific module.

ant core
Compile the core for local use.
ant coreplugins
Compile the core plugins for local use.
ant web
Compile the web client application for local use.
ant installprg
Compile the installation programs for local use.
ant jobagent
Compile the job agent for local use.
ant migrate
Compile the migration program for local use.
ant test
Compile the test programs for local use.
ant doc
Generate documentation for local use. This generates all documentation and may take a long time.
ant doc.javadoc
Generate Javadoc documentation only. The documentation is generated in the 'doc/api' directory.
ant doc.docbook.html
Generate user- and administrator documentation from docbook in HTML format. Docbook will work with pure Java but performance is a lot better if XSLTPROC is installed. The documentation is generated in the 'doc/html' directory.

4. Running BASE from the local installation

If you have followed the instructions so far the subversion working copy installation is compatible with a binary distribution. You will the installation programs, web application and all other things in the same places as for a binary installation. Read the BASE 2 installation instructions document for more information.