<?xml version="1.0" encoding="UTF-8"?> <!-- This is the assembly descriptor for building a full source code distribution of ANTLR and all its related components. This assembly only includes the Java oriented source code, hence only the Java runtime is included in the resulting jar. The resulting jar is distribution that can be expanded with: jar xvf antlr-master-3.x.x-src.jar The output directory will be antlr-master-3.x.x and in here will be the BUILD.txt fie, which explains how to build ANTLR. Jim Idle - May, 2009 --> <assembly> <!-- The name of this assembly descriptor, which is referenced in the master pom.xml using <assemblyRef> (although in fact we reference the file name that contains it to avoid cluttering the pom. --> <id>src</id> <!-- We have elected to produce only a jar output and to use the line endings of whatever platform we are running on. More formats can be added for simultaneous production, such as <format>zip</format> --> <formats> <format>jar</format> </formats> <!-- The resulting archives will have a base directory named after the master artifact, rather than just extract into the current directory. --> <includeBaseDirectory>true</includeBaseDirectory> <!-- We need to described the source code of each of the modules we want including in the archive. In the main this is because we did not store the modules in perforce using directory names that match the module names. This was for historic reasons as we already moved everything about massively, just to move to Maven in the first place. --> <moduleSets> <!-- Describe the gUnit source code. --> <moduleSet> <!-- The Maven artifact name tells the assembly artifact a bunch of information to start with, such as its location in the current tree and so on. --> <includes> <include>org.antlr:antlr-runtime</include> </includes> <!-- What sources do we wish to include from this module? --> <sources> <!-- Because the Java runtime source is not in a directory called antlr-runtime, directly underneath the master directory, we need to map the output directory so that instead of starting with the name of the artifact, it is in the place where the build expects it. --> <outputDirectoryMapping>runtime/Java</outputDirectoryMapping> <fileSets> <!-- We have one file set, being the src sub-directory, which in the output archive, we also want to be called src/ --> <fileSet> <directory>src</directory> <outputDirectory>src</outputDirectory> </fileSet> <!-- In the base runtime/Java directory, we need to include a number of files that either document the module or control the build. These are not underneath the src directory of course so they need to be named here (which nicely documents what is included. --> <fileSet> <includes> <include>pom.xml</include> <include>doxyfile</include> <include>antlr.config</include> </includes> </fileSet> </fileSets> </sources> </moduleSet> <!-- Describe the ANTLR tool source code. --> <moduleSet> <includes> <include>org.antlr:antlr</include> </includes> <!-- What sources do we wish to include from this module? --> <sources> <!-- Because the tool source code is not in a directory called antlr, nor directly underneath the master directory, we need to map the output directory so that instead of starting with the name of the artifact, it is in the place where the build expects it. --> <outputDirectoryMapping>tool</outputDirectoryMapping> <fileSets> <!-- We have one file set, being the src sub-directory, which in the output archive, we also want to be called src/ --> <fileSet> <directory>src</directory> <outputDirectory>src</outputDirectory> </fileSet> <!-- In the base tool directory, we need to include a number of files that either document the module or control the build. These are not underneath the src directory of course so they need to be named here (which nicely documents what is included. --> <fileSet> <includes> <include>pom.xml</include> <include>CHANGES.txt</include> <include>LICENSE.txt</include> <include>README.txt</include> <include>antlr.config</include> </includes> </fileSet> </fileSets> </sources> </moduleSet> </moduleSets> <!-- In the base directory of the master build directory (the root of all the other sources), there are a number of files that describe or control the build (such as the master pom.xml and the BUILD.txt files). Hence we need to describe them in their own fileset. No output mapping is required here of course. --> <fileSets> <fileSet> <includes> <include>pom.xml</include> <include>antlrjar.xml</include> <include>antlrsources.xml</include> <include>BUILD.txt</include> </includes> </fileSet> </fileSets> </assembly>