diff --git a/assemble/src/assemble/src.xml b/assemble/src/assemble/src.xml
deleted file mode 100644
index a073189..0000000
--- a/assemble/src/assemble/src.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<assembly>
-  <!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-  
-  http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing, software
-  distributed  under the  License is distributed on an "AS IS" BASIS,
-  WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
-  implied.
-  
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-  <id>src</id>
-  <!-- 
-  Generates a file including all the source tree excluding files/folders
-  starting with "." , *.bak and the target
-  -->
-  <formats>
-    <format>zip</format>
-    <format>tar.gz</format>
-  </formats>
-  <fileSets>
-    <fileSet>
-      <directory>..</directory>
-      <outputDirectory></outputDirectory>
-      <excludes>
-        <exclude>**/target/**</exclude>
-        <exclude>.*</exclude>
-        <exclude>.*/**</exclude>
-        <exclude>**.bak</exclude>
-      </excludes>
-      <useDefaultExcludes>true</useDefaultExcludes>
-    </fileSet>
-  </fileSets>
-</assembly>
\ No newline at end of file
