UIMA project logo
Quick Start for working with Source Code
Apache UIMA

Search the site

 Do the one-time-setup

To work with the source code, start by doing the one-time setups.

 Checkout and Build UIMA SDK

To build all of the Apache UIMA Java SDK (including the docbooks and the binary assembly) and install these artifacts to your local maven repository, do the following commands. We'll assume you want to do this work in a local disk directory on your build machine.

First, as an example, create the local build directory by using whatever your operating system's commands are for creating this. For instance, in Windows, you might pick "myWorkingCopy" as the name of your local build directory, and create it at the top level, using the command:

    mkdir \myWorkingCopy

UIMA has several projects. The main, core project, is the Java SDK. This is named "uimaj" - the last letter, "j" stands for "Java". Here are sample commands that check out the "trunk" (most current) version into a subdirectory of \myWorkingCopy and build it using:

  • cd \myWorkingCopy
  • svn checkout https://svn.apache.org/repos/asf/uima/uimaj/trunk uimaj
  • cd uimaj
  • mvn install

Note: if you're using Linux or MacOS, change the directory separator character to a forward slash ( "/" ).

Note: to build a particular release. instead of the most current (and possibly, not working) version under development, replace "trunk" with "tags/" + the svn name of that release, such as "tags/uimaj-2.9.0".

If you're looking for the lib containing all the built Jars, cd \myWorkingCopy\uimaj\target and unzip/untar the binary distribution artifact, named something like uimaj-[version]-bin.zip or uimaj-[version]-bin.tar.gz. Then, look inside the unpacked result for a lib directory - it will have the Jars that were built.

 Checkout and Build UIMA-AS

To build UIMA-AS (including the docbooks and the binary assembly) and install these artifacts to your local maven repository, do the following:

  • cd \myWorkingCopy
  • svn checkout https://svn.apache.org/repos/asf/uima/uima-as/trunk uima-as
  • cd uima-as
  • mvn install

 Checkout and Build an Addons (Sandbox) project

  • cd \myWorkingCopy
  • svn checkout https://svn.apache.org/repos/asf/uima/addons/trunk addons
  • cd addons
  • mvn install

To check out just one of the addons and build it, say, the WhitespaceTokenizer, do:

 Checkout and Build UIMA C++ SDK

Checkout the source code as follows:

  • svn checkout https://svn.apache.org/repos/asf/uima/uimacpp/trunk /myWorkingCopyUimacpp

UIMACPP runtime prerequisites are APR, ICU, Xerces-C, ActiveMQ-cpp, APR-Util and a JDK for building the JNI interface. The SDK also requires doxygen for building the documentation.

To build the SDK, all prerequisites need to be built from source. Alternatively UIMACPP can be built and installed on a machine with all the prerequisites available in system directories. In this case the prerequisites can be installed from binary distributions.

Building on Unix

To build and install on a machine with prerequisites available in system directories:

  • cd /myWorkingCopyUimacpp
  • ./configure --with-jdk=location_of_jni.h [other options]
  • make
  • make check

For a full SDK build,

  • ./configure --with-apr=loc_of_apr_install --with-icu=loc_of_icu_install --with-xerces=loc_of_xerces_install --with-activemq=loc_of_amq_install --with-apr-util=loc_of_apr-util_install
  • make install
  • make sdk TARGETDIR="loc_of_sdk_tree [clean]"

For a build of UIMACPP without UIMA-AS support, specify the option --without-activemq. The options --with-activemq and --with-apr-util can be left out.

Building on Windows

To build an SDK all prerequisite components, APR, ICU, Xerces-C, ActiveMQ-cpp and APR-Util must first be built on the machine, and a JDK installed. The location of the dependencies must be set in environment variables APR_HOME, ICU_HOME, XERCES_HOME, ACTIVEMQ_HOME, APU_HOME and JAVA_INCLUDE.

  • cd /myWorkingCopyUimacpp
  • winmake /build release (or debug)
  • cd src\test
  • devenv test.sln /build release
  • fvt
  • cd /myWorkingCopyUimacpp/docs
  • builddocs
  • buildsdk "target_dir [clean]"

For more details on platform specific build issues and on the dependencies, see UIMA C++ Building from source.