  ---
  Examples
  ---
  John Casey
  ---
  05-May-2006
  ---
  
~~ Copyright 2006 The Apache Software Foundation.
~~
~~ Licensed 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.

~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/guides/mini/guide-apt-format.html
                                                                                                                        
Examples

* Table of Contents

  Below, you will see a series of examples showing how to use the Assembly
  Plugin in various contexts.

  * {{{single/index.html}Working with Single Projects}}

    * {{{single/filtering-some-distribution-files.html}Filtering Some Distribution Files}}

    * {{{single/including-and-excluding-artifacts.html}Including/Excluding Artifacts}}

    * {{{single/using-components.html}Using Component Descriptors}}

    * {{{single/using-repositories.html}Using Repositories}}

    []

  * {{{multimodule/index.html}Working with Multi-Module Projects}}
  
    * {{{multimodule/module-source-inclusion-simple.html}Adding Module Sources to the Assembly}}
    
    * {{{multimodule/module-binary-inclusion-simple.html}Adding Module Binaries to the Assembly}}
    
    []
    
  []
