311 lines
12 KiB
XML
311 lines
12 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<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">
|
|
|
|
|
|
<!--
|
|
The ANTLR Maven artifacts are now released via the Sonotype OSS
|
|
repository, which means that they are synced to Maven central
|
|
within a few minutes of hitting the release repo for Sonotype.
|
|
To enable this, we inherit from the Sonotype provided parent
|
|
pom. However, we must also configure our .m2/settings.xml to include
|
|
the snapshot and staging server and the sonotype password. This
|
|
means that only ANTLR developers can released the artifacts, but
|
|
anyone can build locally.
|
|
-->
|
|
<parent>
|
|
<groupId>org.sonatype.oss</groupId>
|
|
<artifactId>oss-parent</artifactId>
|
|
<version>7</version>
|
|
</parent>
|
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<groupId>org.antlr</groupId>
|
|
<artifactId>antlr-master</artifactId>
|
|
<packaging>pom</packaging>
|
|
<version>3.4</version>
|
|
<name>ANTLR Master build control POM 3.4</name>
|
|
<url>http://maven.apache.org</url>
|
|
|
|
|
|
|
|
<!--
|
|
What version of ANTLR are we building? This sets the
|
|
the version number for all other things that are built
|
|
as part of an ANTLR release, unless they override or
|
|
ignore it. We do this via a properites file for this
|
|
pom.
|
|
-->
|
|
|
|
<!--
|
|
This is the master pom for building the ANTLR
|
|
toolset and runtime (Java) at the specific level
|
|
defined above. Hence we specify here the modules that
|
|
this pom will build when we build this pom in certain profiles.
|
|
-->
|
|
|
|
<!--
|
|
Make sure that the build is not platform dependent (I.E show that
|
|
all the files in the source tree are in UTF-8 format.
|
|
-->
|
|
<properties>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
</properties>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>standard</id>
|
|
<activation>
|
|
<activeByDefault>true</activeByDefault>
|
|
</activation>
|
|
<modules>
|
|
<module>runtime/Java</module>
|
|
<module>tool</module>
|
|
<module>antlr3-maven-plugin</module>
|
|
<module>gunit</module>
|
|
<module>gunit-maven-plugin</module>
|
|
<module>antlr3-maven-archetype</module>
|
|
</modules>
|
|
</profile>
|
|
|
|
<!--
|
|
Activate this profile to build ONLY the Uber jar, which is the
|
|
ANTLR tool and its dependencies (no plugins etc).
|
|
|
|
mvn -Duber -DskipTests package assembly:assembly
|
|
|
|
-->
|
|
<profile>
|
|
<id>uber</id>
|
|
<activation>
|
|
<property>
|
|
<name>uber</name>
|
|
<value>true</value>
|
|
</property>
|
|
</activation>
|
|
<modules>
|
|
<module>runtime/Java</module>
|
|
<module>tool</module>
|
|
</modules>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
|
|
<!--
|
|
|
|
Build an uber-jar for the ANTLR Tool that is packaged with all the other dependencies,
|
|
such as the antlr-runtime and stringtemplate etc. This will be useful
|
|
for developers, who then do not need to download anything else or
|
|
remember that they need stringtemplate.jar in their CLASSPATH and so
|
|
on.
|
|
|
|
This does not preclude any of the module generated jars from
|
|
being used on their own of course.
|
|
|
|
Here, we also build a master source jar as I was unable to pursuade
|
|
this plugin to use multiple configurations and not have the thing
|
|
screw up because of multiple modules :-(
|
|
|
|
-->
|
|
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<version>2.2.1</version>
|
|
<!--
|
|
Do not make the child modules build an assembly
|
|
-->
|
|
<inherited>false</inherited>
|
|
|
|
<configuration>
|
|
<descriptors>
|
|
<descriptor>antlrjar.xml</descriptor>
|
|
<descriptor>antlrsources.xml</descriptor>
|
|
</descriptors>
|
|
<!--
|
|
|
|
Specify that we want the resulting jar to be executable
|
|
via java -jar, which we do by modifying the manifest
|
|
of course.
|
|
-->
|
|
<archive>
|
|
<manifest>
|
|
<mainClass>org.antlr.Tool</mainClass>
|
|
</manifest>
|
|
</archive>
|
|
</configuration>
|
|
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>release-sign-artifacts</id>
|
|
<activation>
|
|
<property>
|
|
<name>deploy</name>
|
|
<value>true</value>
|
|
</property>
|
|
</activation>
|
|
<modules>
|
|
<module>runtime/Java</module>
|
|
<module>tool</module>
|
|
<module>antlr3-maven-plugin</module>
|
|
<module>gunit</module>
|
|
<module>gunit-maven-plugin</module>
|
|
<module>antlr3-maven-archetype</module>
|
|
</modules>
|
|
<build>
|
|
<plugins>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-gpg-plugin</artifactId>
|
|
<version>1.3</version>
|
|
<executions>
|
|
<execution>
|
|
<id>sign-artifacts</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>sign</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>2.8</version>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-javadocs</id>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
<version>2.1.2</version>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-sources</id>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
|
|
</profiles>
|
|
|
|
<!--
|
|
|
|
Tell Maven which other artifacts we need in order to
|
|
build, run and test the ANTLR jars.
|
|
This is the master pom, and so it only contains those
|
|
dependencies that are common to all the modules below
|
|
or are just included for test
|
|
-->
|
|
<dependencyManagement>
|
|
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</artifactId>
|
|
<version>4.8.2</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
|
|
</dependencies>
|
|
|
|
</dependencyManagement>
|
|
|
|
<build>
|
|
|
|
<defaultGoal>install</defaultGoal>
|
|
|
|
<!--
|
|
The following filter definition means that both the master
|
|
project and the sub projects will read in a file in the same
|
|
directory as the pom.xml is located and set any properties
|
|
that are defined there in the standard x=y format. These
|
|
properties can then be referenced via ${x} in any resource
|
|
file specified in any pom. So, there is a master antlr.config
|
|
file in the same location as this pom.xml file and here you can
|
|
define anything that is relevant to all the modules that we
|
|
build here. However each module also has an antlr.config file
|
|
where you can override property values from the master file or
|
|
define things that are only relevant to that module.
|
|
-->
|
|
<filters>
|
|
<filter>antlr.config</filter>
|
|
</filters>
|
|
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/resources</directory>
|
|
<filtering>true</filtering>
|
|
</resource>
|
|
</resources>
|
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>buildnumber-maven-plugin</artifactId>
|
|
<version>1.0-beta-2</version>
|
|
<configuration>
|
|
<format>{0,date,MMM dd, yyyy} {0,time,kk:mm:ss}</format>
|
|
<items>
|
|
<item>timestamp</item>
|
|
</items>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<phase>validate</phase>
|
|
<goals>
|
|
<goal>create</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>2.3.2</version>
|
|
<configuration>
|
|
<source>1.6</source>
|
|
<target>jsr14</target>
|
|
<sourceDirectory>src</sourceDirectory>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>2.9</version>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>findbugs-maven-plugin</artifactId>
|
|
<version>2.3.2</version>
|
|
<configuration>
|
|
<findbugsXmlOutput>true</findbugsXmlOutput>
|
|
<findbugsXmlWithMessages>true</findbugsXmlWithMessages>
|
|
<xmlOutput>true</xmlOutput>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
</build>
|
|
</project>
|