Marshall Schor created UIMA-2963:
------------------------------------
Summary: upgrade maven-dependency-plugin to >= 2.6
Key: UIMA-2963
URL: https://issues.apache.org/jira/browse/UIMA-2963
Project: UIMA
Issue Type: Improvement
Components: Build, Packaging and Test
Affects Versions: parent-pom-4
Reporter: Marshall Schor
Assignee: Marshall Schor
Fix For: parent-pom-5
Currently the UIMA-wide parent pom specifies maven-dependency-plugin version
2.3. The currently released version is 2.8. As of version 2.6, a new
configuration parameter, useBaseName, is available which prevents resolution of
versions 2.4.1-SNAPSHOT from being converted to 2.4.1-20130303.12345678 where
the last 2 numbers are the snapshot being used. This feature is needed to get
SNAPSHOT builds working for the new design of Eclipse Runtime packaging - where
the design embeds Jars inside Jars. Here are the details:
We build OSGi bundles / Eclipse plugins, which sometimes are collections of
other Jars. The current best practice is to embed those Jars without unpacking
them, thus preserving any License/Notice files they may have, etc.
Felix's maven-bundle-plugin supports this using the packaging "Jar", and the
instructions _exportcontents, and Embed-Dependency. In this design, the
dependency section of the POM contains references to all the Jars that have
packages that are needed. The bundle plugin uses these instructions and the
Maven dependency information to create a Manifest Bundle-ClassPath entry which
has the names of the needed dependent Jars.
Another build step, outside of the Felix bundle step, uses Maven dependency
plugin's copy-dependencies, to copy the Jars to the target/classes spot, where
the maven jar plugin looks for building the final Jar; this creates the
Jars-inside-Jar structure.
Unfortunately, when uploading Snapshots to Snapshot repositories, Maven renames
the x.y.z-SNAPSHOT Jar to some name like x.y.z-20130303.12345678 where the last
2 numbers are the timestamp of the Jar.
The default for older versions of the maven dependency plugin, when copying the
Jar from a snapshot repository, is to keep the -20130303.12345678 style suffix,
instead of using the base name -SNAPSHOT. This convention breaks the Felix
bundle build, which put into the manifest in multiple spots the name using the
-SNAPSHOT convention.
More recent versions of the maven-dependency-plugin (after 2.6) have a new
configuration parameter, useBaseName, that has Maven use the -SNAPSHOT name
locally, when fetching from a remote repository. This is the default, in
version 2.6 and later.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira