While trying to test a patch for code used in a plugin, I tried building an eclipse update site and installing it, and found several problems.
1) Some "BND" bundle instructions for dealing with split packages accidently duplicated an "exclude". The newer release of the maven-bundle-plugin now treates these duplicates differently, causing an invalid Eclipse manifest to be generated, which is only discovered when you try to install from the update-site, and you get messages like:
Eclipse: uimaj-ep-configurator: Descriptor Editor 2.3.1.SNAPSHOT (org.apache.uima.desceditor 2.3.1.SNAPSHOT) requires 'package !org.eclipse.jface.text 0.0.0' but it could not be found
Note the "!" in front of the package name, which is caused by the duplicate exclude entry.
2) The uimaj-ep-jcasgen plugin didn't specify the correct parent, so the maven bundle plugin wasn't properly configured.
3) The uimaj-ep-runtime plugin was depending on the maven-bundle-plugin:bundle goal to embed the dependent Jars. However, this goal is turned off (by the common parent pom) and just the ordinary maven-jar-plugin is used.
A fix to correct this by turning on the bundle goal, and turning off the jar goal, for just this project, showed up another error: the method of passing in the final build artifact name has a substitutable parameter for the version, which the maven-jar-plugin substitutes, but the maven-bundle-plugin doesn't.
To work around this, don't use the "bundle" goal, go back to using the jar goal, adding a build step that uses maven-dependency-plugin:unpack-dependencies to create the embedding.
4) the feature projects (e.g. uimaj-eclipse-feature-tools) specifies the incubator urls, update these to the new locations.
5) the code in the update-site project put in to automatically copy the current plugins to the target needs to rename the jars from their maven names to the names that correspond to the eclipse plugin ids and follow Eclipse conventions