| <?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> |