The Eclipse update site build is somewhat unusual, because it accumulates releases over time
from various UIMA distributions. This is because we have just one update site (at the moment)
for all releases, for all components that want this service,
such as the core UIMA and UIMA-AS.
The Eclipse plugs are organized into Features. These each have a project, using the naming
convention of uimaj-eclipse-feature-xxxx. Currently we have 3 features:
- uimaj-eclipse-feature-deployeditor (for the UIMA-AS editor for deployment descriptors)
- uimaj-eclipse-feature-runtime (for other plugins, and for building RCP applications)
- uimaj-eclipse-feature-tools (holds most of the UIMA Eclipse tooling
Prior to building the update site, the feature sites need to be updated to reflect the
set of features for the current release. The build will create Jar files tagged with the
release number, for each updated feature.
The Eclipse update site is built in 2 phases.
-
The first phase occurs during the normal maven
builds of the project - this phase builds the Jars that constitute the plugins.
-
The second consists of several parts.
The set of feature projects, uimaj-eclipse-feature-xxxxx, must all be updated for
the current release. Generally, only the pom.xml and feature.xml files will
need updating.
Update the uimaj-eclipse-update-site project for the release: the files pom.xml
and site.xml. Then execute the maven command
mvn install on the uimaj-eclipse-update-site project.
The POM for this is an aggregator POM and will recursively invoke install on the uimaj-eclipse-feature-xxxxx
projects, to build their Jars.
The result of running mvn install will be a partial, but working Eclipse update site, located
in the project's target/eclipse-update-site directory. It is partial, because the real update site keeps
back level versions of the feature and plugin jars, while this site will only have jars for the current release.
When uploading to the distribution point after the release is approved, be sure to merge in those jars.
The feature Jars (in the uimaj-eclipse-update-site/features directory) for the new update site are checked into SVN,
for use by future builds.
Building the Eclipse Update Site requires some additional maven setup: you have to have Eclipse
version 3.3 or later installed, and you have to indicate to maven where it is installed.
In the examples below, this is shown as c:/your/path/to/eclipse.
Note that you can type the slashes '/' as backslashes '\' in Windows -- it doesn't matter
(both work). The path should be to an directory (which, by default is
often named "eclipse" but can be named anything) containing the eclipse
executable, and the subdirectory folders for Eclipse such as "plugins"
and "features".
You can do this in one of 3 ways.
The first way is to create a maven "settings.xml" file, and store it
in your local maven repository, (for instance,
on Windows, in the directory: Documents and Settings/[user-login]/.m2). This file is
useful for other things as well, such as specifying upload servers. The file contents that
you need to specify the Eclipse location looks like this:
<settings xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>local-build-configuration</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<uima-maven-build-eclipse-home>
c:/your/path/to/eclipse
</uima-maven-build-eclipse-home>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>
local-build-configuration
</activeProfile>
</activeProfiles>
</settings>
The second way to do this is to set an environment variable. Here's an example in Windows:
set ECLIPSE_HOME=c:/your/path/to/eclipse
The third way is to pass a command line argument to the maven command below, which looks like this:
-Duima-maven-build-eclipse-home=c:/your/path/to/eclipse