  ---
  Single Project Examples
  ---
  Edwin Punzalan
  ---
  24-July-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

Single Project Examples

  A Single Project is a project whose assemblies does not use \<moduleSets\>.

  The examples below may help you in creating assemblies for your single
  projects.

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

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

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

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