diff --git a/opennlp-similarity/src/main/assembly/src.xml b/opennlp-similarity/src/main/assembly/assembly.xml
similarity index 80%
rename from opennlp-similarity/src/main/assembly/src.xml
rename to opennlp-similarity/src/main/assembly/assembly.xml
index 6eeff23..cd79117 100644
--- a/opennlp-similarity/src/main/assembly/src.xml
+++ b/opennlp-similarity/src/main/assembly/assembly.xml
@@ -1,39 +1,32 @@
-<!--
- 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>src</id>
-  <formats>
-    <format>tar.gz</format>
-    <format>zip</format>
-  </formats>
-  
-  <baseDirectory>/apache-opennlp-similarity-${project.version}-src</baseDirectory>
-  
-  <fileSets>
-    <fileSet>
-      <directory>../</directory>
-      <outputDirectory></outputDirectory>
-      <excludes>
-        <exclude>**/target/**</exclude>
-        <exclude>**/.*/**</exclude>
-        <exclude>**/pom.xml.releaseBackup</exclude>
-        <exclude>**/release.properties</exclude>
-      </excludes>
-    </fileSet>
-  </fileSets>
-</assembly>
\ No newline at end of file
+<!--
+ 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>src</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <fileSets>
+    <fileSet>
+      <directory>${project.basedir}</directory>
+      <outputDirectory></outputDirectory>
+      <excludes>
+        <exclude>**/target/**</exclude>
+        <exclude>**/.*/**</exclude>
+      </excludes>
+    </fileSet>
+  </fileSets>
+</assembly>
diff --git a/opennlp-similarity/src/main/assembly/bin.xml b/opennlp-similarity/src/main/assembly/bin.xml
deleted file mode 100644
index b4a8504..0000000
--- a/opennlp-similarity/src/main/assembly/bin.xml
+++ /dev/null
@@ -1,122 +0,0 @@
-<?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>bin</id>
-  <formats>
-    <format>tar.gz</format>
-    <format>zip</format>
-  </formats>
-  
-    <includeBaseDirectory>true</includeBaseDirectory>
-	<baseDirectory>/apache-opennlp-similarity-${project.version}</baseDirectory>
-  
-	<dependencySets>
-		<dependencySet>
-			<includes>
-				<include>org.apache.opennlp:opennlp-maxent</include>
-				<include>org.apache.opennlp:opennlp-tools</include>
-				<include>org.apache.opennlp:opennlp-uima</include>
-				<include>jwnl:jwnl</include>
-			</includes>
-			<unpack>false</unpack>
-			<useProjectArtifact>false</useProjectArtifact>
-			<fileMode>644</fileMode>
-			<directoryMode>755</directoryMode>
-			<outputDirectory>lib</outputDirectory>
-		</dependencySet>
-	</dependencySets>
-	
-	<fileSets>
-	    <fileSet>
-	    	<directory>src/main/readme</directory>
-	    	<outputDirectory></outputDirectory>
-	    	<fileMode>644</fileMode>
-	    	<directoryMode>755</directoryMode>      
-	    </fileSet>
-		
-	    <fileSet>
-	      <directory>.</directory>
-	      <outputDirectory></outputDirectory>
-	      <filtered>true</filtered>
-	      <fileMode>644</fileMode>
-	      <directoryMode>755</directoryMode> 
-	      <includes>
-	        <include>README</include>
-	        <include>RELEASE_NOTES.html</include>
-	      </includes>       
-	    </fileSet>
-	    
-	    <fileSet>
-	      <directory>target</directory>
-	      <outputDirectory></outputDirectory>
-	      <fileMode>644</fileMode>
-	      <directoryMode>755</directoryMode> 
-	      <includes>
-	        <include>issuesFixed/**</include>      
-	      </includes>       
-	    </fileSet>
-	    
-		<fileSet>
-			<directory>src/main/bin</directory>
-			<fileMode>755</fileMode>
-			<directoryMode>755</directoryMode>
-			<outputDirectory>bin</outputDirectory>
-		</fileSet>
-		
-		<fileSet>
-			<directory>../opennlp-docs/target/docbkx/html</directory>
-			<fileMode>644</fileMode>
-			<directoryMode>755</directoryMode>
-			<outputDirectory>docs/manual</outputDirectory>
-		</fileSet>
-		
-		<fileSet>
-			<directory>../opennlp-maxent/target/apidocs</directory>
-			<fileMode>644</fileMode>
-			<directoryMode>755</directoryMode>
-			<outputDirectory>docs/apidocs/opennlp-maxent</outputDirectory>
-		</fileSet>
-		
-		<fileSet>
-			<directory>../opennlp-tools/target/apidocs</directory>
-			<fileMode>644</fileMode>
-			<directoryMode>755</directoryMode>
-			<outputDirectory>docs/apidocs/opennlp-tools</outputDirectory>
-		</fileSet>
-		
-		<fileSet>
-			<directory>../opennlp-uima/target/apidocs</directory>
-			<fileMode>644</fileMode>
-			<directoryMode>755</directoryMode>
-			<outputDirectory>docs/apidocs/opennlp-uima</outputDirectory>
-		</fileSet>
-		
-		<fileSet>
-			<directory>../opennlp-uima/descriptors</directory>
-			<filtered>true</filtered>
-			<fileMode>644</fileMode>
-			<directoryMode>755</directoryMode>
-			<outputDirectory>docs/opennlp-uima-descriptors</outputDirectory>
-		</fileSet>
-		
-	</fileSets>
-</assembly>
\ No newline at end of file
diff --git a/opennlp-similarity/src/main/assembly/standalone.xml b/opennlp-similarity/src/main/assembly/standalone.xml
deleted file mode 100644
index a24aa7a..0000000
--- a/opennlp-similarity/src/main/assembly/standalone.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<!--
- 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>standalone</id>
-  <formats>
-    <format>jar</format>
-  </formats>
-  <includeBaseDirectory>false</includeBaseDirectory>
-  <dependencySets>
-    <dependencySet>
-      <outputDirectory></outputDirectory>
-      <unpack>true</unpack>
-      <unpackOptions>
-        <excludes>
-          <exclude>META-INF/MANIFEST.MF</exclude>
-          <exclude>META-INF/README*</exclude>
-          <exclude>META-INF/NOTICE*</exclude>
-          <exclude>META-INF/LICENSE*</exclude>
-          <exclude>README*</exclude>
-          <exclude>NOTICE*</exclude>
-          <exclude>LICENSE*</exclude>
-        </excludes>
-      </unpackOptions>
-    </dependencySet>
-  </dependencySets>
-</assembly>
