A better 'feature-assembly' plugin
----------------------------------
Key: KARAF-165
URL: https://issues.apache.org/jira/browse/KARAF-165
Project: Karaf
Issue Type: New Feature
Affects Versions: 2.2.0
Reporter: Adrian Trenaman
Create an improved Maven feature-assembly plugin. Right now, to make a feature
I've got to add almost a hundred lines of Maven verbage to my pom.xml in order
to assemble a feature. I've got to use the attach-artifact goal of the
org.codehaus.mojo/build-helper-maven-plugin to deploy my features file into
Maven. I've got to use the add-features-to-repo goal from the
org.apache.karaf.tooling/features-maven-plugin to suck down all the dependent
bundles. I've got to a whole load of other stuff to perform the packaging to
.tar.gz and .zip. The problem here is that I'm using a whole load of generic
plugins to do a very specific job, and I'm having to tell the plugins what to
do instead of telling them what I want done. I'd prefer to have a single more
declarative plugin to do this. It might look like this:
{code:xml}
<plugin>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>feature-assembly-plugin</artifactId>
<version>2.2.0</version>
<executions>
<execution>
<id>create-repo</id>
<phase>generate-resources</phase>
<goals>
<goal>create-repo</goal>
</goals>
<configuration>
<!-- Specify the
feature file to use. -->
<featureFile>file:${basedir}/target/classes/features.xml</featureFile>
<!-- Specify what
features to include. This is actually optional: if no features
are specified,
then include all features in the file by default. -->
<features>
<feature>feature-a</feature>
</features>
</configuration>
</execution>
</executions>
</plugin>
{code}
The plugin should produce a .tar.gz and .zip file, containing the feature
descriptor (and all dependent descriptors) and all bundles (and dependent
bundles)in a Maven-style directory, similar to the system/ directory currently
used in Karaf. Note that this plugin doesn't need you to list out all the
feature repositories / descriptors that your feature file may transitively
include - it will detect these dependencies at runtime and work out the details.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.