• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!--
2
3 [The "BSD license"]
4
5 ANTLR        - Copyright (c) 2005-2010 Terence Parr
6 Maven Plugin - Copyright (c) 2009      Jim Idle
7
8 All rights reserved.
9
10 Redistribution and use in source and binary forms, with or without
11 modification, are permitted provided that the following conditions
12 are met:
13 1. Redistributions of source code must retain the above copyright
14    notice, this list of conditions and the following disclaimer.
15 2. Redistributions in binary form must reproduce the above copyright
16    notice, this list of conditions and the following disclaimer in the
17    documentation and/or other materials provided with the distribution.
18 3. The name of the author may not be used to endorse or promote products
19    derived from this software without specific prior written permission.
20
21 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
22 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24 IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
25 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
26 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
32  -->
33
34
35
36<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
37  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
38
39
40    <!--
41        The ANTLR Maven artifacts are now released via the Sonotype OSS
42        repository, which means that they are synced to Maven central
43        within a few minutes of hitting the release repo for Sonotype.
44        To enable this, we inherit from the Sonotype provided parent
45        pom. However, we must also configure our .m2/settings.xml to include
46        the snapshot and staging server and the sonotype password. This
47        means that only ANTLR developers can released the artifacts, but
48        anyone can build locally.
49      -->
50    <parent>
51        <groupId>org.sonatype.oss</groupId>
52        <artifactId>oss-parent</artifactId>
53        <version>7</version>
54    </parent>
55
56    <!-- Maven model we are inheriting from
57      -->
58    <modelVersion>4.0.0</modelVersion>
59
60    <!--
61
62     Now that the ANTLR project has adopted Maven with a vengence,
63     all ANTLR tools will be grouped under org.antlr and will be
64     controlled by a project member.
65     -->
66    <groupId>org.antlr</groupId>
67
68
69    <!--
70
71     This is the ANTLR plugin for ANTLR version 3.1.3 and above. It might
72     have been best to change the name of the plugin as the 3.1.2 plugins
73     behave a little differently, however for the sake of one transitional
74     phase to a much better plugin, it was decided that the name should
75     remain the same.
76      -->
77    <artifactId>antlr3-maven-plugin</artifactId>
78    <packaging>maven-plugin</packaging>
79
80    <!-- Note that as this plugin depends on the ANTLR tool itself
81         we cannot use the paren pom to control the version number
82         and MUST update <version> in this pom manually!
83         -->
84    <version>3.4</version>
85    <name>Maven plugin for ANTLR V3.4</name>
86    <prerequisites>
87        <maven>2.0</maven>
88    </prerequisites>
89
90    <!--
91     Where does our actual project live on the interwebs.
92      -->
93    <url>http://antlr.org</url>
94
95    <properties>
96        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
97    </properties>
98
99    <description>
100
101This is the brand new, re-written from scratch plugin for ANTLR v3.
102
103Previous valiant efforts all suffered from being unable to modify the ANTLR Tool
104itself to provide support not just for Maven oriented things but any other tool
105that might wish to invoke ANTLR without resorting to the command line interface.
106
107Rather than try to shoe-horn new code into the existing Mojo (in fact I think that
108by incorporating a patch supplied by someone I ended up with tow versions of the
109Mojo, I elected to rewrite everything from scratch, including the documentation, so
110that we might end up with a perfect Mojo that can do everything that ANTLR v3 supports
111such as imported grammar processing, proper support for library directories and
112locating token files from generated sources, and so on.
113
114In the end I decided to also change the the ANTLR Tool.java code so that it
115would be the provider of all the things that a build tool needs, rather than
116delegating things to 5 different tools. So, things like dependencies, dependency
117sorting, option tracking, generating sources and so on are all folded back
118in to ANTLR's Tool.java code, where they belong, and they now provide a
119public interface to anyone that might want to interface with them.
120
121One other goal of this rewrite was to completely document the whole thing
122to death. Hence even this pom has more comments than funcitonal elements,
123in case I get run over by a bus or fall off a cliff while skiing.
124
125Jim Idle - March 2009
126
127    </description>
128
129    <profiles>
130        <profile>
131            <id>release-sign-artifacts</id>
132            <activation>
133                <property>
134                    <name>deploy</name>
135                    <value>true</value>
136                </property>
137            </activation>
138            <build>
139                <plugins>
140                    <plugin>
141                        <groupId>org.apache.maven.plugins</groupId>
142                        <artifactId>maven-gpg-plugin</artifactId>
143                        <version>1.3</version>
144                        <executions>
145                            <execution>
146                                <id>sign-artifacts</id>
147                                <phase>verify</phase>
148                                <goals>
149                                   <goal>sign</goal>
150                                </goals>
151                            </execution>
152                        </executions>
153                    </plugin>
154                </plugins>
155            </build>
156        </profile>
157    </profiles>
158
159
160    <developers>
161
162        <developer>
163            <name>Jim Idle</name>
164            <url>http://www.temporal-wave.com</url>
165            <roles>
166                <role>Originator, version 3.1.3+</role>
167            </roles>
168        </developer>
169
170        <developer>
171            <name>Terence Parr</name>
172            <url>http://antlr.org/wiki/display/~admin/Home</url>
173            <roles>
174                <role>Project lead - ANTLR</role>
175            </roles>
176        </developer>
177
178        <developer>
179            <name>David Holroyd</name>
180            <url>http://david.holroyd.me.uk/</url>
181            <roles>
182                <role>Originator - prior version</role>
183            </roles>
184        </developer>
185
186        <developer>
187            <name>Kenny MacDermid</name>
188            <url>mailto:kenny "at" kmdconsulting.ca</url>
189            <roles>
190                <role>Contributor - prior versions</role>
191            </roles>
192        </developer>
193
194    </developers>
195
196    <!-- Where do we track bugs for this project?
197      -->
198    <issueManagement>
199        <system>JIRA</system>
200        <url>http://antlr.org/jira/browse/ANTLR</url>
201    </issueManagement>
202
203    <!-- Location of the license description for this project
204      -->
205    <licenses>
206        <license>
207            <distribution>repo</distribution>
208            <name>The BSD License</name>
209            <url>http://www.antlr.org/LICENSE.txt </url>
210        </license>
211    </licenses>
212
213    <!-- Ancilliary information for completeness
214      -->
215    <inceptionYear>2009</inceptionYear>
216
217    <mailingLists>
218        <mailingList>
219            <archive>http://antlr.markmail.org/</archive>
220            <otherArchives>
221                <otherArchive>http://www.antlr.org/pipermail/antlr-interest/</otherArchive>
222            </otherArchives>
223            <name>ANTLR Users</name>
224            <subscribe>http://www.antlr.org/mailman/listinfo/antlr-interest/</subscribe>
225            <unsubscribe>http://www.antlr.org/mailman/options/antlr-interest/</unsubscribe>
226            <post>antlr-interest@antlr.org</post>
227        </mailingList>
228    </mailingLists>
229
230    <organization>
231        <name>ANTLR.org</name>
232        <url>http://www.antlr.org</url>
233    </organization>
234    <!-- ============================================================================= -->
235
236    <!--
237
238     What are we depedent on for the Mojos to execute? We need the
239     plugin API itself and of course we need the ANTLR Tool and runtime
240     and any of their dependencies, which we inherit. The Tool itself provides
241     us with all the dependencies, so we need only name it here.
242      -->
243    <dependencies>
244
245        <!--
246          The things we need to build the target language recognizer
247          -->
248        <dependency>
249            <groupId>org.apache.maven</groupId>
250            <artifactId>maven-plugin-api</artifactId>
251            <version>2.0</version>
252            <scope>compile</scope>
253        </dependency>
254
255        <dependency>
256            <groupId>org.apache.maven</groupId>
257            <artifactId>maven-project</artifactId>
258            <version>2.0</version>
259        </dependency>
260
261        <dependency>
262            <groupId>org.codehaus.plexus</groupId>
263            <artifactId>plexus-compiler-api</artifactId>
264            <version>1.5.3</version>
265        </dependency>
266
267        <!--
268         The version of ANTLR tool that this version of the plugin controls.
269         We have decided that this should be in lockstep with ANTLR itself, other
270         than -1 -2 -3 etc patch releases.
271          -->
272        <dependency>
273            <groupId>org.antlr</groupId>
274            <artifactId>antlr</artifactId>
275            <version>3.4</version>
276        </dependency>
277
278        <!--
279          Testing requirements...
280          -->
281        <dependency>
282
283            <groupId>junit</groupId>
284            <artifactId>junit</artifactId>
285            <version>4.8.2</version>
286            <scope>test</scope>
287
288        </dependency>
289
290        <dependency>
291            <groupId>org.apache.maven.shared</groupId>
292            <artifactId>maven-plugin-testing-harness</artifactId>
293            <version>1.0</version>
294            <scope>test</scope>
295        </dependency>
296
297    </dependencies>
298
299    <build>
300
301        <defaultGoal>install</defaultGoal>
302
303        <plugins>
304
305            <plugin>
306                <artifactId>maven-compiler-plugin</artifactId>
307                <version>2.0.2</version>
308                <configuration>
309                    <source>1.6</source>
310                    <target>jsr14</target>
311                </configuration>
312            </plugin>
313
314            <plugin>
315                <groupId>org.apache.maven.plugins</groupId>
316                <artifactId>maven-site-plugin</artifactId>
317                <version>2.0</version>
318            </plugin>
319
320            <plugin>
321                <groupId>org.apache.maven.plugins</groupId>
322                <artifactId>maven-project-info-reports-plugin</artifactId>
323                <version>2.1.1</version>
324                <configuration>
325                    <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
326                </configuration>
327            </plugin>
328
329            <plugin>
330                <groupId>org.apache.maven.plugins</groupId>
331                <artifactId>maven-source-plugin</artifactId>
332                <version>2.1.2</version>
333                <executions>
334                    <execution>
335                        <id>attach-sources</id>
336                        <goals>
337                            <goal>jar</goal>
338                        </goals>
339                    </execution>
340                </executions>
341            </plugin>
342
343			<plugin>
344				<groupId>org.apache.maven.plugins</groupId>
345				<artifactId>maven-javadoc-plugin</artifactId>
346                <version>2.8</version>
347				<executions>
348					<execution>
349						<id>attach-javadocs</id>
350						<goals>
351							<goal>jar</goal>
352						</goals>
353					</execution>
354				</executions>
355			</plugin>
356
357        </plugins>
358
359    </build>
360
361</project>
362