uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marshall Schor <...@schor.com>
Subject Re: building source-release.zip - was: [VOTE] Release build poms incorporating change to docbkx 2.0.11 version
Date Mon, 06 Sep 2010 21:21:46 GMT
 Here's more details on how the source-release.zip is built (for those who
really want to know ... )

Our build process follows the standard Apache Maven build processes, and uses
the common Apache-wide "super pom":
The source release zip artifact (e.g.  xxx-version-source-release.zip where xxx
= the maven artifactId) is created by the Apache super pom during the release
process.  Our parent-pom-top/pom.xml has, as a parent, the Apache common super
pom, http://repo1.maven.org/maven2/org/apache/apache/7/apache-7.pom .

In that pom, there is a section within a profile named "apache-release"; here
are the relevant parts:

      <!-- START SNIPPET: release-profile -->
          <!-- Create a source-release artifact that contains the fully buildable
               project directory source structure. This is the artifact which is
               the official subject of any release vote. -->
               ...  omitted sections ...
    <!-- END SNIPPET: release-profile -->

To understand how this works, the assembly plugin uses the
${sourceReleaseAssemblyDescriptor} as a "built-in" descriptor.  Only, it's not
really built-in.  The assembly plugin looks up built-in descriptors following a
naming convention, in the classpath.  The <dependency> element inside the
<plugin> element adds the necessary thing to the classpath, so this is like a
"custom" built-in. 

Here's the assembly descriptor that it uses (from
- it's inside the jar artifact - you have to unzip it to find it...)

    <!-- main project directory structure -->
        <!-- build output -->
        <!-- 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
             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 -->
        <!-- misc -->
        <!-- release-plugin temp files -->
    <!-- license, readme, etc. calculated at build time -->

Because this is in the apache-release profile, which is not activated normally,
the source release zip is normally not built.  The apache release plugin is
configured to activate this profile when a release is being performed.


View raw message