Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-user] Modifying manifest.mf during 'generate-resources' phase?

David,

You need to add 'eclipse-plugin' to supportedProjectTypes in the
maven-bundle-plugin configuration. See [1].

[1] http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html

Simon

On 30 March 2012 00:52, David Aldridge <daldridge@xxxxxxxxx> wrote:
> I have an Eclipse plugin which needs to bundle some platform-specific native
> resources in the generated bundle. (I.e. a whole bunch of stuff listed for
> "Bundle-Native" in the manifest).
>
> With the required Bundle-Native files existing locally on disk at the
> locations specified in the manifest, everything compiles and packages fine,
> both inside Eclipse using the normal plugin tooling, and via the command
> line with Maven (I'm not yet concerned with using m2e).
>
> However, what I actually need to do is download those native resource
> dependencies on the fly during the build.
>
> I've already solved the resolve/download/unpack part of the issue using the
> ivy-maven-plugin (downloads from a non-maven-compatible artifact path) and
> maven-antrun-plugin (to extract the subset of files from what's downloaded
> into the Bundle-Native specified location) during the 'generate-resources'
> lifecycle phase.
>
> Unfortunately, if the Bundle-Native resources don't exist at the time of the
> maven build (i.e. files aren't downloaded yet, but the manifest still
> contains the Bundle-Native reference), the build fails.  (I suppose it fails
> the 'validate' lifecycle invocation, though I'm not positive -- the
> 'generate-resources' phase definitely isn't reached, though).
>
> So... the thought was to gut the existing manifest.mf and remove the
> Bundle-Native block, and then generate a custom manifest.mf during the
> 'generate-resources' phase (just a guess - I think it really just needs to
> happen before 'packaging'?).
>
> Attempts to use org.apache.felix's maven-bundle-plugin are skipped, as that
> only runs for 'jar' and 'bundle' packaging types -- but the plugin is using
> tycho's 'eclipse-plugin'.
>
> Here's what would likely work if maven-bundle-plugin could be used:
>
>         <plugin>
>           <groupId>org.apache.felix</groupId>
>           <artifactId>maven-bundle-plugin</artifactId>
>           <version>2.3.7</version>
>           <extensions>true</extensions>
>           <executions>
>             <execution>
>               <phase>generate-resources</phase>
>               <goals>
>                 <goal>manifest</goal>
>               </goals>
>             </execution>
>           </executions>
>           <configuration>
>             <instructions>
>               <Bundle-NativeCode>
>                 /path/to/somefile;
>                 osname=win32;
>                 processor=x86
>               </Bundle-NativeCode>
>             </instructions>
>           </configuration>
>         </plugin>
>
> Maven command-line output from using the above:
>
> [INFO] --- maven-bundle-plugin:2.3.7:manifest (default) @
> com.mgam.mforce.gdk.ogre ---
> [WARNING] Ignoring project type eclipse-plugin - supportedProjectTypes =
> [jar, bundle]
>
>
> So, does anybody have an idea how I can accomplish this?
>
> Cheers,
> David
>
>
> _______________________________________________
> tycho-user mailing list
> tycho-user@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/tycho-user
>


Back to the top