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

Reply via email to