Home | History | Annotate | Download | only in antlr3-maven-plugin
      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 
    101 This is the brand new, re-written from scratch plugin for ANTLR v3.
    102 
    103 Previous valiant efforts all suffered from being unable to modify the ANTLR Tool
    104 itself to provide support not just for Maven oriented things but any other tool
    105 that might wish to invoke ANTLR without resorting to the command line interface.
    106 
    107 Rather than try to shoe-horn new code into the existing Mojo (in fact I think that
    108 by incorporating a patch supplied by someone I ended up with tow versions of the
    109 Mojo, I elected to rewrite everything from scratch, including the documentation, so
    110 that we might end up with a perfect Mojo that can do everything that ANTLR v3 supports
    111 such as imported grammar processing, proper support for library directories and
    112 locating token files from generated sources, and so on.
    113 
    114 In the end I decided to also change the the ANTLR Tool.java code so that it
    115 would be the provider of all the things that a build tool needs, rather than
    116 delegating things to 5 different tools. So, things like dependencies, dependency
    117 sorting, option tracking, generating sources and so on are all folded back
    118 in to ANTLR's Tool.java code, where they belong, and they now provide a
    119 public interface to anyone that might want to interface with them.
    120 
    121 One other goal of this rewrite was to completely document the whole thing
    122 to death. Hence even this pom has more comments than funcitonal elements,
    123 in case I get run over by a bus or fall off a cliff while skiing.
    124 
    125 Jim 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 (a] 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