Author: jdcasey
Date: Fri May  5 11:05:16 2006
New Revision: 400125

URL: http://svn.apache.org/viewcvs?rev=400125&view=rev
Log:
Adding examples for module inclusion.

Added:
    maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/
    maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/index.apt   
(with props)
    maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/
    
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-binary-inclusion-simple.apt
   (with props)
    
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-source-inclusion-simple.apt
   (with props)
Modified:
    
maven/plugins/trunk/maven-assembly-plugin/src/it/basic-features/module-sourceNotIncludedBinaryIncluded/src/assemble/bin.xml
    maven/plugins/trunk/maven-assembly-plugin/src/site/site.xml

Modified: 
maven/plugins/trunk/maven-assembly-plugin/src/it/basic-features/module-sourceNotIncludedBinaryIncluded/src/assemble/bin.xml
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/it/basic-features/module-sourceNotIncludedBinaryIncluded/src/assemble/bin.xml?rev=400125&r1=400124&r2=400125&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-assembly-plugin/src/it/basic-features/module-sourceNotIncludedBinaryIncluded/src/assemble/bin.xml
 (original)
+++ 
maven/plugins/trunk/maven-assembly-plugin/src/it/basic-features/module-sourceNotIncludedBinaryIncluded/src/assemble/bin.xml
 Fri May  5 11:05:16 2006
@@ -13,7 +13,7 @@
       <binaries>
         <outputDirectory>modules/${artifactId}</outputDirectory>
         <includeDependencies>true</includeDependencies>
-        <unpack>true</unpack>
+        <unpack>false</unpack>
       </binaries>
     </moduleSet>
   </moduleSets>

Added: maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/index.apt
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/index.apt?rev=400125&view=auto
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/index.apt 
(added)
+++ maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/index.apt 
Fri May  5 11:05:16 2006
@@ -0,0 +1,46 @@
+  ---
+  Assembly Plugin - 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
+                                                                               
                                         
+Assembly Plugin - Examples
+
+* Table of Contents
+
+  Below, you will see a series of examples showing how to use the assembly
+  plugin in various contexts.
+  
+  * Working with Multi-Module Projects
+  
+    * {{{multimodule/module-source-inclusion-simple.html}Adding Module Sources 
to the Assembly}} <(Simple)>
+    
+    * {{{multimodule/module-binary-inclusion-simple.html}Adding Module 
Binaries to the Assembly}} <(Simple)>
+    
+    []
+    
+  []
+
+
+    
+    
+

Propchange: 
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/index.apt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/index.apt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-binary-inclusion-simple.apt
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-binary-inclusion-simple.apt?rev=400125&view=auto
==============================================================================
--- 
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-binary-inclusion-simple.apt
 (added)
+++ 
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-binary-inclusion-simple.apt
 Fri May  5 11:05:16 2006
@@ -0,0 +1,147 @@
+  ---
+  Assembly Plugin Example - Including Module Artifacts
+  ---
+  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
+                                                                               
                                         
+Assembly Plugin Example - Including Module Artifacts
+
+* Introduction
+
+  It is common practice to create an assembly using the parent POM of a
+  multimodule build. At times, you may want to ensure that this assembly also
+  includes one or more of the module artifacts.
+  
+  This example demonstrates how to include the artifact and dependencies of a 
+  module, under the directory <<<modules/\<module-name\>>>>.
+  
+* The Assembly Descriptor
+
+  First, let's write an assembly descriptor to create this assembly. For the
+  sake of clarity, this descriptor will be as simple as possible, only
+  demonstrating the features described by this example.
+  
++---+
+<assembly>
+  <id>bin</id>
+  <formats>
+    <format>dir</format>
+  </formats>
+  <includeBaseDirectory>false</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <includes>
+        <include>org.test:child1</include>
+      </includes>
+      <binaries>
+        <outputDirectory>modules/${artifactId}</outputDirectory>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+      </binaries>
+    </moduleSet>
+  </moduleSets>
+</assembly>
++---+
+
+  This descriptor states that the assembly id should be <<<bin>>>, that the
+  output format is a directory, and that the contents of the assembly should
+  <<not>> be contained within a directory named after the finalName of the 
+  top-level project.
+  
+  Furthermore, it states that we wish to include the artifact files for the 
module
+  with a groupId of <<<org.test>>> and an artifactId of <<<child1>>>, along 
with
+  its dependency artifacts. These artifacts should be contained within the 
+  directory structure <<<modules/child1>>> for this module, since the 
+  outputDirectory expression will be interpolated on a module-by-module basis.
+  
+* The POM
+
+  Now, let's review the POM configuration necessary to enable the building of
+  this assembly via the <assembly:directory> mojo:
+  
++---+
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.test</groupId>
+  <artifactId>parent</artifactId>
+  <version>1.0</version>
+  
+  <packaging>pom</packaging>
+  
+  <name>Parent</name>
+
+  <modules>
+    <module>child1</module>
+    <module>child2</module>
+    <module>child3</module>
+  </modules>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <configuration>
+          <descriptors>
+            <descriptor>src/assemble/bin.xml</descriptor>
+          </descriptors>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
++---+
+
+  This POM simply directs the assembly plugin to use the <<<bin.xml>>>
+  assembly descriptor when executing.
+  
+* Execute!
+
+  To build the assembly, we issue the following command:
+  
++---+
+mvn clean package assembly:directory
++---+
+
+  This will ensure that the output directory (normally, <<<target>>>), is
+  removed before building the assembly directory. 
+  
+  <<NOTE:>> Because of a quirk in Maven 2.0's execution model relating to 
+  aggregator mojos and the inheritance hierarchy, we need to explicitly 
execute 
+  the package phase ahead of the assembly invocation, to ensure all modules 
have 
+  been built.
+  
+* Examining the Output
+
+  When the Maven execution completes, the following directory structure should
+  be left:
+  
++---+
+target/parent-1.0-bin
+`-- modules
+    `-- child1
+        |-- child1-1.0.jar
+        `-- junit-3.8.1.jar
++---+
+

Propchange: 
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-binary-inclusion-simple.apt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-binary-inclusion-simple.apt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-source-inclusion-simple.apt
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-source-inclusion-simple.apt?rev=400125&view=auto
==============================================================================
--- 
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-source-inclusion-simple.apt
 (added)
+++ 
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-source-inclusion-simple.apt
 Fri May  5 11:05:16 2006
@@ -0,0 +1,150 @@
+  ---
+  Assembly Plugin Example - Including Module Sources
+  ---
+  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
+                                                                               
                                         
+Assembly Plugin Example - Including Module Sources
+
+* Introduction
+
+  It is common practice to create an assembly using the parent POM of a
+  multimodule build. At times, you may want to ensure that this assembly also
+  includes the source code from one or more of the modules in this build.
+  
+  This example demonstrates how to include the project sources from a module in
+  the project assembly, under the directory <<<sources/\<module-name\>>>>.
+  
+* The Assembly Descriptor
+
+  First, let's write an assembly descriptor to create this assembly. For the
+  sake of clarity, this descriptor will be as simple as possible, only
+  demonstrating the features described by this example.
+  
++---+
+<assembly>
+  <id>src</id>
+  <formats>
+    <format>dir</format>
+  </formats>
+  <includeBaseDirectory>false</includeBaseDirectory>
+  <moduleSets>
+    <moduleSet>
+      <includes>
+        <include>org.test:child1</include>
+      </includes>
+      <sources>
+        <outputDirectory>sources/${artifactId}</outputDirectory>
+      </sources>
+    </moduleSet>
+  </moduleSets>
+</assembly>
++---+
+
+  This descriptor states that the assembly id should be <<<src>>>, that the
+  output format is a directory, and that the contents of the assembly should
+  <<not>> be contained within a directory named after the finalName of the 
+  top-level project.
+  
+  Furthermore, it states that we wish to include the source files for the 
module
+  with a groupId of <<<org.test>>> and an artifactId of <<<child1>>>. These
+  sources should be contained within the directory structure
+  <<<sources/child1>>> for this module, since the outputDirectory expression
+  will be interpolated on a module-by-module basis.
+  
+* The POM
+
+  Now, let's review the POM configuration necessary to enable the building of
+  this assembly via the <assembly:directory> mojo:
+  
++---+
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.test</groupId>
+  <artifactId>parent</artifactId>
+  <version>1.0</version>
+  
+  <packaging>pom</packaging>
+  
+  <name>Parent</name>
+
+  <modules>
+    <module>child1</module>
+    <module>child2</module>
+    <module>child3</module>
+  </modules>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <configuration>
+          <descriptors>
+            <descriptor>src/assemble/src.xml</descriptor>
+          </descriptors>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
++---+
+
+  This POM simply directs the assembly plugin to use the <<<src.xml>>>
+  assembly descriptor when executing.
+  
+* Execute!
+
+  To build the assembly, we issue the following command:
+  
++---+
+mvn clean assembly:directory
++---+
+
+  This will ensure that the output directory (normally, <<<target>>>), is
+  removed before building the assembly directory.
+  
+* Examining the Output
+
+  When the Maven execution completes, the following directory structure should
+  be left:
+  
++---+
+target/parent-1.0-src/
+`-- sources
+    `-- child1
+        |-- pom.xml
+        `-- src
+            |-- main
+            |   `-- java
+            |       `-- org
+            |           `-- test
+            |               `-- App.java
+            `-- test
+                `-- java
+                    `-- org
+                        `-- test
+                            `-- AppTest.java
++---+
+

Propchange: 
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-source-inclusion-simple.apt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/plugins/trunk/maven-assembly-plugin/src/site/apt/examples/multimodule/module-source-inclusion-simple.apt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/plugins/trunk/maven-assembly-plugin/src/site/site.xml
URL: 
http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-assembly-plugin/src/site/site.xml?rev=400125&r1=400124&r2=400125&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/site/site.xml (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/site/site.xml Fri May  5 
11:05:16 2006
@@ -35,6 +35,7 @@
     <menu name="Overview">
       <item name="Introduction" href="introduction.html"/>
       <item name="How to Use" href="howto.html"/>
+      <item name="Examples" href="examples/index.html"/>
       <item name="Descriptor Format" href="assembly.html"/>
       <item name="Predefined Descriptors" href="descriptor.html"/>
     </menu>


Reply via email to