Author: henning
Date: Thu Nov  4 18:19:58 2010
New Revision: 1031123

URL: http://svn.apache.org/viewvc?rev=1031123&view=rev
Log:
add a tweaked src assembly that builds both zip and tar.gz. Also add a few 
tweaks for style

Added:
    commons/proper/vfs/trunk/dist/src/assembly/src.xml   (with props)
Modified:
    commons/proper/vfs/trunk/dist/   (props changed)
    commons/proper/vfs/trunk/dist/pom.xml
    commons/proper/vfs/trunk/pom.xml

Propchange: commons/proper/vfs/trunk/dist/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Nov  4 18:19:58 2010
@@ -0,0 +1,4 @@
+*.iml
+target
+.*
+maven-eclipse.xml

Modified: commons/proper/vfs/trunk/dist/pom.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/vfs/trunk/dist/pom.xml?rev=1031123&r1=1031122&r2=1031123&view=diff
==============================================================================
--- commons/proper/vfs/trunk/dist/pom.xml (original)
+++ commons/proper/vfs/trunk/dist/pom.xml Thu Nov  4 18:19:58 2010
@@ -114,11 +114,6 @@ limitations under the License.
         </dependency>
     </dependencies>
 
-    <properties>
-        <commons.componentid>vfs-dist</commons.componentid>
-        <vfs.parent.dir>${basedir}/..</vfs.parent.dir>
-    </properties>
-
     <profiles>
         <profile>
             <id>apache-release</id>
@@ -130,6 +125,7 @@ limitations under the License.
                             <execution>
                                 <id>binary</id>
                                 <configuration>
+                                    
<finalName>commons-vfs-${project.version}</finalName>
                                     <descriptors>
                                         
<descriptor>src/assembly/bin.xml</descriptor>
                                     </descriptors>

Added: commons/proper/vfs/trunk/dist/src/assembly/src.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/vfs/trunk/dist/src/assembly/src.xml?rev=1031123&view=auto
==============================================================================
--- commons/proper/vfs/trunk/dist/src/assembly/src.xml (added)
+++ commons/proper/vfs/trunk/dist/src/assembly/src.xml Thu Nov  4 18:19:58 2010
@@ -0,0 +1,75 @@
+<?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>src</id>
+  <formats>
+    <format>zip</format>
+    <format>tar.gz</format>
+  </formats>
+  <fileSets>
+    <!-- main project directory structure -->
+    <fileSet>
+      <directory>.</directory>
+      <outputDirectory>/</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/)(.*/)?[^/]*\.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>
+        
+        <!-- misc -->
+        
<exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?cobertura\.ser]</exclude>
+        
+        <!-- release-plugin temp files -->
+        
<exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?pom\.xml\.releaseBackup]</exclude>
+        
<exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?release\.properties]</exclude>
+      </excludes>
+    </fileSet>
+    <!-- license, readme, etc. calculated at build time -->
+    <fileSet>
+      
<directory>${project.build.directory}/maven-shared-archive-resources/META-INF</directory>
+      <outputDirectory>/</outputDirectory>
+    </fileSet>
+  </fileSets>
+</assembly>

Propchange: commons/proper/vfs/trunk/dist/src/assembly/src.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/proper/vfs/trunk/dist/src/assembly/src.xml
------------------------------------------------------------------------------
    svn:keywords = Id Author Date Revision

Modified: commons/proper/vfs/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/vfs/trunk/pom.xml?rev=1031123&r1=1031122&r2=1031123&view=diff
==============================================================================
--- commons/proper/vfs/trunk/pom.xml (original)
+++ commons/proper/vfs/trunk/pom.xml Thu Nov  4 18:19:58 2010
@@ -378,13 +378,60 @@
       <url>scp://people.apache.org/www/commons.apache.org/vfs/</url>
     </site>
   </distributionManagement>
-  
+
+  <!-- Releasing VFS as a multi-module build with binary artifacts is somewhat
+       painful. This profile hooks into the commons-parent and the apache-pom 
to
+       get the build done and then uses the assembly to package it up.
+  -->  
   <profiles>
     <profile>
       <id>apache-release</id>
+      <!-- The binary distribution must be built after all the submodules have 
been
+           built. So that happens in an additional sub-project which depends 
on all
+           the submodules to build. So the 'dist' submodule is only activated 
in the
+           release profile. Otherwise, there is nothing to see here.
+      -->
       <modules>
         <module>dist</module>
       </modules>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-assembly-plugin</artifactId>
+            <executions>
+              <!-- As the main Apache pom only builds source zip archives but
+                   commons wants both zip and tar.gz and because this is 
configured
+                   in the assembly, we need to use a specific assembly. That 
also allows
+                   nameing the final artifact as -src not -source-release.
+              -->
+              <execution>
+                <id>vfs-source-release-assembly</id>
+                <phase>package</phase>
+                <goals>
+                  <goal>single</goal>
+                </goals>
+                <configuration>
+                    <finalName>commons-vfs-${project.version}</finalName>
+                  <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
+                  <descriptors>
+                      <descriptor>dist/src/assembly/src.xml</descriptor>
+                  </descriptors>
+                  <tarLongFileMode>gnu</tarLongFileMode>
+                </configuration>
+              </execution>
+              <!-- But the original source build is still hooked up and would
+                   create a second source archive. Luckily, it can be turned 
off.
+              -->
+              <execution>
+                <id>source-release-assembly</id>
+                <configuration>
+                  <skipAssembly>true</skipAssembly>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
     </profile>
   </profiles>
 </project>


Reply via email to