1<?xml version="1.0" encoding="UTF-8"?> 2 3<!-- 4 5 This is the assembly descriptor for building a full source code 6 distribution of ANTLR and all its related components. This assembly 7 only includes the Java oriented source code, hence only the Java runtime 8 is included in the resulting jar. 9 10 The resulting jar is distribution that can be expanded with: 11 12 jar xvf antlr-master-3.x.x-src.jar 13 14 The output directory will be antlr-master-3.x.x and in here will be 15 the BUILD.txt fie, which explains how to build ANTLR. 16 17 Jim Idle - May, 2009 18 --> 19<assembly> 20 21 <!-- The name of this assembly descriptor, which is referenced in 22 the master pom.xml using <assemblyRef> (although in fact we 23 reference the file name that contains it to avoid cluttering 24 the pom. 25 --> 26 <id>src</id> 27 28 <!-- We have elected to produce only a jar output and to use the line 29 endings of whatever platform we are running on. More formats 30 can be added for simultaneous production, such as <format>zip</format> 31 --> 32 <formats> 33 <format>jar</format> 34 </formats> 35 36 <!-- 37 The resulting archives will have a base directory named after the master 38 artifact, rather than just extract into the current directory. 39 --> 40 <includeBaseDirectory>true</includeBaseDirectory> 41 42 <!-- We need to described the source code of each of the modules we want 43 including in the archive. In the main this is because we did not store 44 the modules in perforce using directory names that match the module 45 names. This was for historic reasons as we already moved everything 46 about massively, just to move to Maven in the first place. 47 --> 48 <moduleSets> 49 50 <!-- Describe the gUnit source code. 51 --> 52 <moduleSet> 53 54 <!-- The Maven artifact name tells the assembly artifact a bunch 55 of information to start with, such as its location in the current 56 tree and so on. 57 --> 58 <includes> 59 <include>org.antlr:antlr-runtime</include> 60 </includes> 61 62 <!-- What sources do we wish to include from this module? 63 --> 64 <sources> 65 66 <!-- Because the Java runtime source is not in a directory 67 called antlr-runtime, directly underneath the master 68 directory, we need to map the output directory so that 69 instead of starting with the name of the artifact, it 70 is in the place where the build expects it. 71 --> 72 <outputDirectoryMapping>runtime/Java</outputDirectoryMapping> 73 74 <fileSets> 75 <!-- We have one file set, being the src sub-directory, which in 76 the output archive, we also want to be called src/ 77 --> 78 <fileSet> 79 <directory>src</directory> 80 <outputDirectory>src</outputDirectory> 81 </fileSet> 82 83 <!-- In the base runtime/Java directory, we need to include a number 84 of files that either document the module or control the 85 build. These are not underneath the src directory of course 86 so they need to be named here (which nicely documents what 87 is included. 88 --> 89 <fileSet> 90 <includes> 91 <include>pom.xml</include> 92 <include>doxyfile</include> 93 <include>antlr.config</include> 94 </includes> 95 </fileSet> 96 </fileSets> 97 </sources> 98 99 </moduleSet> 100 101 <!-- Describe the ANTLR tool source code. 102 --> 103 <moduleSet> 104 <includes> 105 <include>org.antlr:antlr</include> 106 </includes> 107 108 <!-- What sources do we wish to include from this module? 109 --> 110 <sources> 111 112 <!-- Because the tool source code is not in a directory 113 called antlr, nor directly underneath the master 114 directory, we need to map the output directory so that 115 instead of starting with the name of the artifact, it 116 is in the place where the build expects it. 117 --> 118 <outputDirectoryMapping>tool</outputDirectoryMapping> 119 120 121 <fileSets> 122 123 <!-- We have one file set, being the src sub-directory, which in 124 the output archive, we also want to be called src/ 125 --> 126 <fileSet> 127 <directory>src</directory> 128 <outputDirectory>src</outputDirectory> 129 </fileSet> 130 131 <!-- In the base tool directory, we need to include a number 132 of files that either document the module or control the 133 build. These are not underneath the src directory of course 134 so they need to be named here (which nicely documents what 135 is included. 136 --> 137 <fileSet> 138 <includes> 139 <include>pom.xml</include> 140 <include>CHANGES.txt</include> 141 <include>LICENSE.txt</include> 142 <include>README.txt</include> 143 <include>antlr.config</include> 144 </includes> 145 </fileSet> 146 147 </fileSets> 148 149 </sources> 150 151 </moduleSet> 152 153 </moduleSets> 154 155 <!-- In the base directory of the master build directory (the root of all 156 the other sources), there are a number of files that describe or control 157 the build (such as the master pom.xml and the BUILD.txt files). Hence 158 we need to describe them in their own fileset. No output mapping is required here 159 of course. 160 --> 161 <fileSets> 162 <fileSet> 163 <includes> 164 <include>pom.xml</include> 165 <include>antlrjar.xml</include> 166 <include>antlrsources.xml</include> 167 <include>BUILD.txt</include> 168 </includes> 169 </fileSet> 170 </fileSets> 171 172</assembly> 173