You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
311 lines
12 KiB
311 lines
12 KiB
<?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>
|
|
|