Home | History | Annotate | Download | only in antlr-3.4
      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <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">
      3 
      4 
      5     <!--
      6         The ANTLR Maven artifacts are now released via the Sonotype OSS
      7         repository, which means that they are synced to Maven central 
      8         within a few minutes of hitting the release repo for Sonotype.
      9         To enable this, we inherit from the Sonotype provided parent
     10         pom. However, we must also configure our .m2/settings.xml to include
     11         the snapshot and staging server and the sonotype password. This 
     12         means that only ANTLR developers can released the artifacts, but
     13         anyone can build locally.
     14       -->
     15     <parent>
     16         <groupId>org.sonatype.oss</groupId>
     17         <artifactId>oss-parent</artifactId>
     18         <version>7</version>
     19     </parent>    
     20     
     21     <modelVersion>4.0.0</modelVersion>
     22     <groupId>org.antlr</groupId>
     23     <artifactId>antlr-master</artifactId>
     24     <packaging>pom</packaging>
     25     <version>3.4</version>
     26     <name>ANTLR Master build control POM 3.4</name>
     27     <url>http://maven.apache.org</url>
     28 
     29 
     30 
     31   <!--
     32     What version of ANTLR are we building? This sets the
     33     the version number for all other things that are built
     34     as part of an ANTLR release, unless they override or
     35     ignore it. We do this via a properites file for this
     36     pom.
     37     -->
     38 
     39   <!--
     40      This is the master pom for building the ANTLR
     41      toolset and runtime (Java) at the specific level
     42      defined above. Hence we specify here the modules that
     43      this pom will build when we build this pom in certain profiles.
     44     -->
     45 
     46   <!--
     47     Make sure that the build is not platform dependent (I.E show that
     48     all the files in the source tree are in UTF-8 format.
     49     -->
     50     <properties>
     51         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     52     </properties>
     53 
     54         <profiles>
     55             <profile>
     56                 <id>standard</id>
     57                 <activation>
     58                     <activeByDefault>true</activeByDefault>
     59                 </activation>
     60                 <modules>
     61                     <module>runtime/Java</module>
     62                     <module>tool</module>
     63                     <module>antlr3-maven-plugin</module>
     64                     <module>gunit</module>
     65                     <module>gunit-maven-plugin</module>
     66                     <module>antlr3-maven-archetype</module>
     67                 </modules>
     68             </profile>
     69 
     70             <!--
     71                 Activate this profile to build ONLY the Uber jar, which is the
     72                 ANTLR tool and its dependencies (no plugins etc).
     73                 
     74                 mvn -Duber -DskipTests package assembly:assembly
     75                 
     76               -->
     77             <profile>
     78                 <id>uber</id>
     79                 <activation>
     80                     <property>
     81                         <name>uber</name>
     82                         <value>true</value>
     83                     </property>
     84                 </activation>
     85                 <modules>
     86                     <module>runtime/Java</module>
     87                     <module>tool</module>
     88                 </modules>
     89                 <build>
     90                     <plugins>
     91                         <plugin>
     92 
     93                         <!--
     94 
     95                             Build an uber-jar for the ANTLR Tool that is packaged with all the other dependencies,
     96                             such as the antlr-runtime and stringtemplate etc. This will be useful
     97                             for developers, who then do not need to download anything else or
     98                             remember that they need stringtemplate.jar in their CLASSPATH and so
     99                             on.
    100 
    101                             This does not preclude any of the module generated jars from
    102                             being used on their own of course.
    103 
    104                             Here, we also build a master source jar as I was unable to pursuade
    105                             this plugin to use multiple configurations and not have the thing
    106                             screw up because of multiple modules :-(
    107 
    108                           -->
    109 
    110                             <artifactId>maven-assembly-plugin</artifactId>
    111                             <version>2.2.1</version>
    112                             <!--
    113                                 Do not make the child modules build an assembly
    114                               -->
    115                             <inherited>false</inherited>
    116 
    117                             <configuration>
    118                                 <descriptors>
    119                                     <descriptor>antlrjar.xml</descriptor>
    120                                     <descriptor>antlrsources.xml</descriptor>
    121                                 </descriptors>
    122                                     <!--
    123 
    124                                         Specify that we want the resulting jar to be executable
    125                                         via java -jar, which we do by modifying the manifest
    126                                         of course.
    127                                       -->
    128                                 <archive>
    129                                     <manifest>
    130                                         <mainClass>org.antlr.Tool</mainClass>
    131                                     </manifest>
    132                                 </archive>
    133                             </configuration>
    134 
    135                         </plugin>
    136                     </plugins>
    137                 </build>
    138             </profile>
    139             
    140             <profile>
    141                 <id>release-sign-artifacts</id>
    142                 <activation>
    143                     <property>
    144                         <name>deploy</name>
    145                         <value>true</value>
    146                     </property>
    147                 </activation>
    148                 <modules>
    149                     <module>runtime/Java</module>
    150                     <module>tool</module>
    151                     <module>antlr3-maven-plugin</module>
    152                     <module>gunit</module>
    153                     <module>gunit-maven-plugin</module>
    154                     <module>antlr3-maven-archetype</module>
    155                 </modules>
    156                 <build>
    157                     <plugins>
    158                         
    159                         <plugin>
    160                             <groupId>org.apache.maven.plugins</groupId>
    161                             <artifactId>maven-gpg-plugin</artifactId>
    162                             <version>1.3</version>
    163                             <executions>
    164                                 <execution>
    165                                     <id>sign-artifacts</id>
    166                                     <phase>verify</phase>
    167                                     <goals>
    168                                        <goal>sign</goal>
    169                                     </goals>
    170                                 </execution>
    171                             </executions>
    172                         </plugin>
    173                         
    174                         <plugin>
    175                             <groupId>org.apache.maven.plugins</groupId>
    176                             <artifactId>maven-javadoc-plugin</artifactId>
    177                             <version>2.8</version>
    178                             <executions>
    179                                 <execution>
    180                                     <id>attach-javadocs</id>
    181                                     <goals>
    182                                         <goal>jar</goal>
    183                                     </goals>
    184                                 </execution>
    185                             </executions>
    186                         </plugin>
    187                         
    188                         <plugin>
    189                             <groupId>org.apache.maven.plugins</groupId>
    190                             <artifactId>maven-source-plugin</artifactId>
    191                             <version>2.1.2</version>
    192                             <executions>
    193                                 <execution>
    194                                     <id>attach-sources</id>
    195                                     <goals>
    196                                        <goal>jar</goal>
    197                                     </goals>
    198                                 </execution>
    199                             </executions>
    200                         </plugin>
    201                         
    202                     </plugins>
    203                 </build>
    204             </profile>
    205             
    206     </profiles>
    207 
    208   <!--
    209 
    210     Tell Maven which other artifacts we need in order to
    211     build, run and test the ANTLR jars.
    212     This is the master pom, and so it only contains those
    213     dependencies that are common to all the modules below
    214     or are just included for test
    215     -->
    216     <dependencyManagement>
    217 
    218         <dependencies>
    219 
    220             <dependency>
    221                 <groupId>junit</groupId>
    222                 <artifactId>junit</artifactId>
    223                 <version>4.8.2</version>
    224                 <scope>test</scope>
    225             </dependency>
    226 
    227 
    228         </dependencies>
    229 
    230     </dependencyManagement>
    231 
    232     <build>
    233 
    234         <defaultGoal>install</defaultGoal>
    235 
    236         <!--
    237             The following filter definition means that both the master
    238             project and the sub projects will read in a file in the same
    239             directory as the pom.xml is located and set any properties
    240             that are defined there in the standard x=y format. These
    241             properties can then be referenced via ${x} in any resource
    242             file specified in any pom. So, there is a master antlr.config
    243             file in the same location as this pom.xml file and here you can
    244             define anything that is relevant to all the modules that we
    245             build here. However each module also has an antlr.config file
    246             where you can override property values from the master file or
    247             define things that are only relevant to that module.
    248           -->
    249         <filters>
    250             <filter>antlr.config</filter>
    251         </filters>
    252 
    253         <resources>
    254             <resource>
    255                 <directory>src/main/resources</directory>
    256                 <filtering>true</filtering>
    257             </resource>
    258         </resources>
    259 
    260         <plugins>
    261 
    262              <plugin>
    263                 <groupId>org.codehaus.mojo</groupId>
    264                 <artifactId>buildnumber-maven-plugin</artifactId>
    265                 <version>1.0-beta-2</version>
    266                 <configuration>
    267                   <format>{0,date,MMM dd, yyyy} {0,time,kk:mm:ss}</format>
    268                   <items>
    269                     <item>timestamp</item>
    270                   </items>
    271                 </configuration>
    272                 <executions>
    273                   <execution>
    274                     <phase>validate</phase>
    275                     <goals>
    276                       <goal>create</goal>
    277                     </goals>
    278                   </execution>
    279                 </executions>
    280              </plugin>
    281 
    282             <plugin>
    283                 <artifactId>maven-compiler-plugin</artifactId>
    284                 <version>2.3.2</version>
    285                 <configuration>
    286                     <source>1.6</source>
    287                     <target>jsr14</target>
    288                     <sourceDirectory>src</sourceDirectory>
    289                 </configuration>
    290             </plugin>
    291 
    292             <plugin>
    293                 <artifactId>maven-surefire-plugin</artifactId>
    294                 <version>2.9</version>
    295             </plugin>
    296 
    297             <plugin>
    298                 <groupId>org.codehaus.mojo</groupId>
    299                 <artifactId>findbugs-maven-plugin</artifactId>
    300                 <version>2.3.2</version>
    301                 <configuration>
    302                     <findbugsXmlOutput>true</findbugsXmlOutput>
    303                     <findbugsXmlWithMessages>true</findbugsXmlWithMessages>
    304                     <xmlOutput>true</xmlOutput>
    305                 </configuration>
    306             </plugin>
    307             
    308         </plugins>
    309 
    310     </build>
    311 </project>
    312