| <?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"> |
| <modelVersion>4.0.0</modelVersion> |
| <groupId>org.antlr</groupId> |
| <artifactId>antlr-master</artifactId> |
| <packaging>pom</packaging> |
| <version>3.4.1-SNAPSHOT</version> |
| <name>ANTLR Master build control POM</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 |
| --> |
| |
| <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> |
| |
| <!-- |
| 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> |
| |
| <!-- |
| |
| Define where the ANTLR releated jars are deployed both for |
| the main ANTLR repository, which syncs with the maven main |
| repository, and the snapshot repository, which can be |
| used by developers that need the latest development version of |
| something, but is used here to show maven where to deploy |
| snapshots and releases. |
| --> |
| <distributionManagement> |
| |
| <repository> |
| <id>antlr-repo</id> |
| <name>ANTLR Testing repository</name> |
| <url>scpexe://antlr.org/home/mavensync/antlr-repo</url> |
| </repository> |
| |
| <snapshotRepository> |
| <id>antlr-snapshot</id> |
| <name>ANTLR Testing Snapshot Repository</name> |
| <url>scpexe://antlr.org/home/mavensync/antlr-snapshot</url> |
| </snapshotRepository> |
| |
| </distributionManagement> |
| |
| <!-- |
| |
| Inform Maven of the ANTLR snapshot repository, which it will |
| need to consult to get the latest snapshot build of the runtime |
| if it was not built and installed locally. |
| --> |
| <repositories> |
| |
| <!-- |
| This is the ANTLR repository. |
| --> |
| <repository> |
| <id>antlr-snapshot</id> |
| <name>ANTLR Testing Snapshot Repository</name> |
| <url>http://antlr.org/antlr-snapshot</url> |
| <snapshots> |
| <enabled>true</enabled> |
| <updatePolicy>always</updatePolicy> |
| </snapshots> |
| </repository> |
| |
| </repositories> |
| |
| <!-- |
| |
| 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> |
| |
| <dependency> |
| <groupId>antlr</groupId> |
| <artifactId>antlr</artifactId> |
| <version>2.7.7</version> |
| <scope>compile</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.antlr</groupId> |
| <artifactId>stringtemplate</artifactId> |
| <version>4.0.2</version> |
| <scope>compile</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> |
| <configuration> |
| <source>1.6</source> |
| <target>jsr14</target> |
| <sourceDirectory>src</sourceDirectory> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>2.8.1</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> |
| |
| <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> |
| |
| <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> |
| |
| <extensions> |
| <extension> |
| <groupId>org.apache.maven.wagon</groupId> |
| <artifactId>wagon-ssh-external</artifactId> |
| <version>1.0-beta-2</version> |
| </extension> |
| </extensions> |
| |
| </build> |
| </project> |