diff --git a/assembly/pom.xml b/assembly/pom.xml
index da14557..bb3f230 100644
--- a/assembly/pom.xml
+++ b/assembly/pom.xml
@@ -612,6 +612,9 @@
                                 <feature>ssh</feature>
                                 <feature>management</feature>
                             </features>
+                            <copyFileBasedDescriptors>
+                              <copyFileBasedDescriptor>${basedir}/target/classes/features.xml;org/apache/karaf/apache-karaf/${project.version};${project.artifactId}-${project.version}-features.xml</copyFileBasedDescriptor>
+                            </copyFileBasedDescriptors>
                             <repository>target/features-repo</repository>
                         </configuration>
                     </execution>
diff --git a/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java b/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java
index 598cc40..2850d6d 100644
--- a/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java
+++ b/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java
@@ -83,6 +83,11 @@ public class AddFeaturesToRepoMojo extends MojoSupport {
     /**
      * @parameter
      */
+    private List<String> copyFileBasedDescriptors;
+
+    /**
+     * @parameter
+     */
     private boolean skipNonMavenProtocols = true;
 
     /**
@@ -185,6 +190,16 @@ public class AddFeaturesToRepoMojo extends MojoSupport {
                     getLog().error("Can't resolve bundle " + bundle, e);
                 }
             }
+            if (copyFileBasedDescriptors != null) {
+                for (String fileBasedDescritpor : copyFileBasedDescriptors) {
+                    String[] split = fileBasedDescritpor.split(";");
+                    copy(new FileInputStream(new File(split[0])),
+                        repository,
+                        split[2],
+                        split[1],
+                        new byte[8192]);
+                }
+            }
         } catch (MojoExecutionException e) {
             throw e;
         } catch (MojoFailureException e) {
