Allow a mechanism to give preference to local resources over the ones from embedded jars ----------------------------------------------------------------------------------------
Key: FELIX-526 URL: https://issues.apache.org/jira/browse/FELIX-526 Project: Felix Issue Type: Improvement Components: Maven Bundle Plugin Affects Versions: maven-bundle-plugin-1.4.0 Environment: JDK 5 on OpenSolaris/x86 Reporter: Sahoo Fix For: maven-bundle-plugin-1.4.1 Please see the following email discussion between me and Stuart. It happened on [EMAIL PROTECTED] alias on 31 Mar 2008 with the subject that reads like this: [maven-bundle-plugin] How to stop exporting a resource from an inlined jar? On 31/03/2008, Sahoo <[EMAIL PROTECTED]> wrote: > > > > Hi, > > > > I am trying to use maven-bundle-plugin v1.4.0. I prepare a bundle (say > > bundle.jar) which inlines the contents of another jar type artifact > > called javax.faces:jsf-impl. There is a resource called > > META-INF/services/com.sun.faces.spi.injectionprovider which is present > > both in the jsf-impl.jar as well in current project's src/main/resources > > area. I want to package the one that's in our workspace. So, I > > configured the plugin like this: > > > > <configuration> > > <Embed-Dependency> > > *;groupId=javax.faces;artifactId=jsf-impl;inline=true > > </Embed-Dependency> > > > > <!-- Package everything from the embedded jar in the > > final bundle except the following file which > > we maintain in our src/main/resources dir: > > META-INF/services/com.sun.faces.spi.injectionprovider > > --> > > <_exportcontents> > > !META-INF/services/com.sun.faces.spi.injectionprovider,* > > </_exportcontents> > > </configuration> > > > > Yet, I see the resource that is being packaged in the bundle is the one > > from jsf-impl.jar and not from target/classes/... area. What am I doing > > wrong? currently embedded dependencies are added to the Include-Resource statement after the maven resources - unfortunately this means that any inlined entries will overwrite local entries, which isn't optimal :( I'll change this ordering round in 1.4.1 (open a JIRA issue to remind me) you'll also be able to customize the Include-Resource better in 1.4.1, eg: <Include-Resource> {maven-dependencies},some-file,{maven-resources},another-file </Include-Resource> where {maven-dependencies} and {maven-resources} expand to the list of embedded entries and maven resources respectively - you can already do this to some extent with 1.4.0, but there's a bug on Windows with replacing the "{maven-dependencies}" token... so the workaround with 1.4.0 would be to use something like this in place of the Embed-Dependency - you'll need to list each dependency explicitly using @artifactId-version.jar to inline it (this is what Embed-Dependency does under the covers) for example: <Include-Resource> @jsf-impl-1.2-b19.jar,{maven-resources} </Include-Resource> will inline the JSF jar and then overlay resources from the current project HTH -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.