[Build] Generate correct source tarball

Disable generation of source tarball inherited from Apache parent pom
since the name of the artifact does not adhere to
apche-crail-X.Y-incubating-src. Instead generate source tarball in
the assembly module. Add excludes to avoid committing build files.

https://jira.apache.org/jira/projects/CRAIL/issues/CRAIL-56

Signed-off-by: Jonas Pfefferle <pepperjo@apache.org>
diff --git a/assembly/pom.xml b/assembly/pom.xml
index 4844021..0a8e7a8 100644
--- a/assembly/pom.xml
+++ b/assembly/pom.xml
@@ -118,7 +118,7 @@
         <artifactId>maven-assembly-plugin</artifactId>
         <executions>
           <execution>
-            <id>dist</id>
+            <id>binary-release-assembly-crail</id>
             <phase>package</phase>
             <goals>
               <goal>single</goal>
@@ -130,11 +130,23 @@
               </descriptors>
             </configuration>
           </execution>
+          <execution>
+            <id>source-release-assembly-crail</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+            <configuration>
+              <appendAssemblyId>false</appendAssemblyId>
+              <descriptors>
+                <descriptor>src/main/assembly/source-assembly.xml</descriptor>
+              </descriptors>
+              <finalName>apache-crail-${project.version}-src</finalName>
+              <tarLongFileMode>gnu</tarLongFileMode>
+            </configuration>
+          </execution>
         </executions>
       </plugin>
-
-
-
     </plugins>
   </build>
 </project>
diff --git a/assembly/src/main/assembly/source-assembly.xml b/assembly/src/main/assembly/source-assembly.xml
new file mode 100644
index 0000000..0aa0297
--- /dev/null
+++ b/assembly/src/main/assembly/source-assembly.xml
@@ -0,0 +1,92 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  ~
+  ~ 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.
+  -->
+<assembly>
+  <id>source-release</id>
+  <formats>
+    <format>tar.gz</format>
+  </formats>
+  <fileSets>
+    <!-- main project directory structure -->
+    <fileSet>
+      <directory>..</directory>
+      <outputDirectory/>
+      <useDefaultExcludes>true</useDefaultExcludes>
+      <excludes>
+        <!-- build output -->
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/).*${project.build.directory}.*]
+        </exclude>
+
+        <!-- NOTE: Most of the following excludes should not be required
+          if the standard release process is followed. This is because the release
+          plugin checks out project sources into a location like target/checkout, then
+          runs the build from there. The result is a source-release archive that comes
+          from a pretty clean directory structure. HOWEVER, if the release plugin is
+          configured to run extra goals or generate a project website, it's definitely
+          possible that some of these files will be present. So, it's safer to exclude
+          them. -->
+
+        <!-- IDEs -->
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?maven-eclipse\.xml]
+        </exclude>
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.project]
+        </exclude>
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.classpath]
+        </exclude>
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iws]
+        </exclude>
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.idea(/.*)?]
+        </exclude>
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?out(/.*)?]
+        </exclude>
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.ipr]
+        </exclude>
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iml]
+        </exclude>
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.settings(/.*)?]
+        </exclude>
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.externalToolBuilders(/.*)?]
+        </exclude>
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.deployables(/.*)?]
+        </exclude>
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.wtpmodules(/.*)?]
+        </exclude>
+
+
+        <!-- scm -->
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.gitignore(/.*)?]
+        </exclude>
+
+        <!-- release-plugin temp files -->
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?pom\.xml\.releaseBackup]
+        </exclude>
+        <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?release\.properties]
+        </exclude>
+
+        <exclude>**/*.swp</exclude>
+        <exclude>doc/build/**</exclude>
+      </excludes>
+    </fileSet>
+    <!-- LICENSE, NOTICE, DEPENDENCIES -->
+    <fileSet>
+      <directory>${project.build.directory}/maven-shared-archive-resources/META-INF
+      </directory>
+      <outputDirectory/>
+    </fileSet>
+  </fileSets>
+</assembly>
diff --git a/pom.xml b/pom.xml
index 0d6e199..c62bc09 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,7 +40,6 @@
   <properties>
     <build.copyDependenciesPhase>package</build.copyDependenciesPhase>
     <hadoop.version>2.7.3</hadoop.version>
-    <sourceReleaseAssemblyDescriptor>source-release-tar</sourceReleaseAssemblyDescriptor>
   </properties>
 
   <profiles>
@@ -154,15 +153,7 @@
         <executions>
           <execution>
             <id>source-release-assembly</id>
-            <phase>package</phase>
-            <configuration combine.self="override">
-              <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
-              <finalName>apache-crail-${project.version}</finalName>
-              <tarLongFileMode>posix</tarLongFileMode>
-              <descriptorRefs>
-                <descriptorRef>src</descriptorRef>
-              </descriptorRefs>
-            </configuration>
+            <phase>none</phase>
           </execution>
         </executions>
       </plugin>