Permalink
Switch branches/tags
Find file
Fetching contributors…
Cannot retrieve contributors at this time
808 lines (781 sloc) 35.7 KB
<?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>
<name>OpenTripPlanner</name>
<description>The OpenTripPlanner multimodal journey planning system</description>
<url>http://opentripplanner.org</url>
<groupId>org.opentripplanner</groupId>
<artifactId>otp</artifactId>
<version>1.2.0-SNAPSHOT</version>
<packaging>jar</packaging>
<licenses>
<license>
<name>GNU Lesser General Public License</name>
<url>https://www.gnu.org/licenses/lgpl-3.0.txt</url>
</license>
</licenses>
<!-- Developer entries are provided only for Steering Committee members.
For other contributors, see https://github.com/opentripplanner/OpenTripPlanner/graphs/contributors -->
<developers>
<developer>
<name>Andrew Byrd</name>
<email>andrew@fastmail.net</email>
<organization>Conveyal</organization>
<organizationUrl>http://conveyal.com/</organizationUrl>
</developer>
<developer>
<name>David Emory</name>
<email>david.emory@gmail.com</email>
<organization>Conveyal</organization>
<organizationUrl>http://conveyal.com/</organizationUrl>
</developer>
<developer>
<name>Matt Conway</name>
<email>matt@indicatrix.org</email>
<organization>Conveyal</organization>
<organizationUrl>http://conveyal.com/</organizationUrl>
</developer>
<developer>
<name>David Novalis Turner</name>
<email>novalis@novalis.org</email>
<organization>Ex-OpenPlans</organization>
<organizationUrl>http://openplans.org/</organizationUrl>
</developer>
<developer>
<name>Laurent Grégoire</name>
<email>laurent.gregoire@protonmail.ch</email>
<organization>Mecatran</organization>
<organizationUrl>http://www.mecatran.com/</organizationUrl>
</developer>
<developer>
<name>Frank Purcell</name>
<email>fxpurcell@gmail.com</email>
<organization>Portland TriMet</organization>
<organizationUrl>https://trimet.org/</organizationUrl>
</developer>
<developer>
<name>Tuukka Hastrup</name>
<email>tuukka.hastrup@hsl.fi</email>
<organization>Helsingin Seudun Liikenne</organization>
<organizationUrl>https://www.hsl.fi/</organizationUrl>
</developer>
<developer>
<name>Jasper Hartong</name>
<email>jasper@calendar42.com</email>
<organization>Calendar42</organization>
<organizationUrl>http://site.calendar42.com/</organizationUrl>
</developer>
</developers>
<scm>
<connection>scm:git:http://github.com/opentripplanner/OpenTripPlanner.git</connection>
<developerConnection>scm:git:ssh://git@github.com/opentripplanner/OpenTripPlanner.git</developerConnection>
<url>http://github.com/opentripplanner/OpenTripPlanner</url>
</scm>
<properties>
<geotools.version>10.5</geotools.version>
<jackson.version>2.5.3</jackson.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<aws.version>1.9.39</aws.version>
</properties>
<distributionManagement>
<!-- We are using Sonatype Nexus Staging instead of Maven Release plugin.
Only a snapshot repo should be configured. Releases are done from that snapshot staging repo. -->
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<build>
<!-- Filtering will perform substitution on maven-version.properties, see git commit id plugin below. -->
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<!-- shell scripts to start up OTP, need to be filtered to get JAR file name -->
<directory>src/scripts</directory>
<filtering>true</filtering>
<!-- Copy the scripts up into the root of the repo, not /target/classes -->
<targetPath>../..</targetPath>
</resource>
<resource>
<directory>src/client</directory>
<targetPath>client</targetPath>
<filtering>false</filtering>
</resource>
</resources>
<pluginManagement>
<plugins>
<!-- m2eclipse lifecycle mapping configuration. This controls which Maven build goals should
be performed during incremental builds within the Eclipse IDE. There are sensible defaults
for most plugins, but some others require manual configuration with <action><ignore /> or
<action><execute /> filters. This section only affects incremental builds within Eclipse,
not command-line Maven builds. That's why it's a pluginManagement without an accompanying plugin. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[1.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<versionRange>[1.0,)</versionRange>
<goals>
<goal>revision</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<!-- Target Java versions -->
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<!-- Recommended way to deploy to OSSRH , which allows deferred manual release to Central. -->
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.7</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<groupId>com.webcohesion.enunciate</groupId>
<artifactId>enunciate-maven-plugin</artifactId>
<version>2.4.0</version>
<executions>
<execution>
<!-- override default binding to process-sources phase (enunciate generates web services). -->
<phase>site</phase>
<goals>
<goal>docs</goal>
</goals>
</execution>
</executions>
<configuration>
<docsDir>${project.build.directory}/site/enunciate</docsDir>
</configuration>
</plugin>
<plugin>
<!-- This plugin must be configured both here (for attach-javadoc during release)
and in "reports" (for site generation), preferably with identical version numbers. -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.3</version>
<configuration>
<!-- Turn off Java 8 strict Javadoc checking -->
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
<executions>
<!-- Compress Javadoc into JAR and include that JAR when deploying. -->
<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>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>sign-artifacts</id>
<!-- We sign in the verify phase, which means it will happen for install and deploy but not package. -->
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<configuration>
<argLine>-Xmx2G</argLine>
<!-- Jenkins needs XML test reports to determine whether the build is stable. -->
<disableXmlReport>false</disableXmlReport>
</configuration>
</plugin>
<plugin>
<!-- Get current Git commit information for use in MavenVersion class.
Commit information is stored in Maven variables, which are then substituted
into the properties file. The plugin has a mode to generate a git.properties file,
but we need the Maven project version as well, so we perform substitution. -->
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>2.1.15</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<configuration>
<verbose>false</verbose>
<dotGitDirectory>${project.basedir}.git</dotGitDirectory>
<failOnNoGitDirectory>false</failOnNoGitDirectory>
<failOnUnableToExtractRepoInfo>false</failOnUnableToExtractRepoInfo>
</configuration>
</plugin>
<!-- There used to be a dependency-plugin:copy-dependencies plugin entry
here, but the shade-plugin will explode the dependencies even if they aren't
manually copied in. -->
<plugin>
<!-- We want to create a standalone jar that can be run on the command
line. Java does not really allow this - you cannot place jars inside of jars.
You must either provide all the dependency jars to the user (usually lib/
under the directory containing the runnable jar) or explode all the jars
and repackage them into a single jar. The problem is that while class files
are nicely organized into the package namespace and should not collide, the
META-INF directories of the jars will collide. Maven's standard assembly
plugin does not account for this and will just clobber metadata. This then
causes runtime errors, particularly with Spring. Instead, we use the shade
plugin which has transformers that will for example append files of the same
name rather than overwrite them in the combined JAR. NB: Don't use a version
of the shade plugin older than 1.3.2, as it fixed MSHADE-76 (files not merged
properly if some input files are missing a terminating newline) -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<!-- exclude signatures from merged JAR to avoid invalid signature messages -->
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<!-- The shaded JAR will not be the main artifact for the project, it will be attached
for deployment in the way source and docs are. -->
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>shaded</shadedClassifierName>
<!-- MinimizeJar removes unused classes, (classes not imported explicitly by name).
We have eliminated most Jersey auto-scanning, but there is still some need for include
filters to force-include classes that are dynamically loaded by name/auto-scanned. -->
<!-- This roughly halves the size of the OTP JAR, bringing it down to around 20 MB.
<minimizeJar>true</minimizeJar>
<filters> <filter> <artifact>com.sun.jersey:*</artifact> <includes> <include>**</include>
</includes> </filter> <filter> <artifact>org.opentripplanner:*</artifact>
<includes> <include>**</include> </includes> </filter> </filters> -->
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>org.opentripplanner.standalone.OTPMain</Main-Class>
<!-- The ImageIO lines allow some image reader plugins to work (TODO elaborate) -->
<Specification-Title>Java Advanced Imaging Image I/O
Tools
</Specification-Title>
<Specification-Version>1.1</Specification-Version>
<Specification-Vendor>Sun Microsystems, Inc.</Specification-Vendor>
<Implementation-Title>com.sun.media.imageio</Implementation-Title>
<Implementation-Version>1.1</Implementation-Version>
<Implementation-Vendor>Sun Microsystems, Inc.</Implementation-Vendor>
<Extension-Name>com.sun.media.imageio</Extension-Name>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<!--
Reporting plugin versions cannot be managed with entries in <build><plugins><pluginmanagement>
but would need a separate <reporting><plugins><pluginmanagement> section.
-->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.7</version>
<reportSets>
<reportSet>
<reports>
<!-- empty: disable project-info reports -->
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<!-- This plugin must be configured both here (for site generation) and in "build"
(for attach-javadoc during release), preferably with identical version numbers. -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.3</version>
<configuration>
<!-- Turn off Java 8 strict Javadoc checking -->
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
<reportSets>
<reportSet>
<reports>
<!-- enable only aggregate-level javadoc generation -->
<report>aggregate</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<repositories>
<!-- Hack to force maven to check central first. Maven central is inherited from the superpom,
but ends up at the end of the list. Though most of the time the artifact is in central,
Maven tries to download from every other repository and fails before checking central.
Do not change the id from central2 to central, otherwise the entry will be ignored. -->
<repository>
<id>central2</id>
<name>check central first to avoid a lot of not found warnings</name>
<url>https://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>download.java.net</id>
<name>Java.net Repository for Maven</name>
<url>http://download.java.net/maven/2/</url>
</repository>
<repository>
<id>osgeo</id>
<name>Open Source Geospatial Foundation Repository</name>
<url>http://download.osgeo.org/webdav/geotools/</url>
</repository>
<repository>
<id>axis</id>
<name>axis</name>
<url>https://people.apache.org/repo/m1-ibiblio-rsync-repository/org.apache.axis2/</url>
</repository>
<repository>
<id>conveyal</id>
<name>Conveyal Maven Repository</name>
<url>https://maven.conveyal.com/</url>
</repository>
</repositories>
<dependencies>
<!-- Amazon AWS client libraries -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>${aws.version}</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-ec2</artifactId>
<version>${aws.version}</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-sqs</artifactId>
<version>${aws.version}</version>
</dependency>
<!-- Fast drop-in serialization including compound value types (structs) for Java -->
<dependency>
<groupId>de.ruedigermoeller</groupId>
<artifactId>fst</artifactId>
<version>2.34</version>
</dependency>
<!-- Logging library, implements slf4j logging API -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.13</version>
</dependency>
<!-- Jersey uses java.util logging, redirect it to slf4j API (we use the Logback implementation) -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.6</version>
</dependency>
<!-- AWS SDK uses Java commons logging. Redirect it to the slf4j API (we use the Logback implementation) -->
<!-- Why does this work? It seems like we'd need to declare JCL "provided" to avoid using the true JCL. -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.6</version>
</dependency>
<!-- Guava provides improved collections, among other things. -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
<!-- Trove provides optimized map/set collections for native types (int, long...) -->
<dependency>
<groupId>net.sf.trove4j</groupId>
<artifactId>trove4j</artifactId>
<version>3.0.3</version>
</dependency>
<!-- GEOTOOLS AND JTS TOPOLOGY: geometry, rasters and projections. -->
<!-- GEOTOOLS includes JTS as a transitive dependency. -->
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-referencing</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-referencing3D</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-coverage</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-arcgrid</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-shapefile</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geotiff</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-wfs</artifactId>
<version>${geotools.version}</version>
</dependency>
<!-- provides EPSG database for projections (shapefile loading) -->
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
<version>${geotools.version}</version>
</dependency>
<!-- TODO: this should be replaced by Jackson serialization -->
<dependency>
<groupId>de.grundid.opendatalab</groupId>
<artifactId>geojson-jackson</artifactId>
<version>1.2</version>
<!-- We explicitely exclude jackson-core/databind as we use a more recent
version than the one geojson-jackson depends on, and the two seems to
be somehow incompatible. -->
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.conveyal</groupId>
<artifactId>jackson2-geojson</artifactId>
<version>0.8</version>
</dependency>
<!-- TESTING -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>
<!-- Jersey annontation-driven REST web services (JAX-RS implementation) -->
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.18</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.18</version>
</dependency>
<!-- Deploy Jersey apps in stand-alone Grizzly server instead of a servlet container. -->
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
<version>2.18</version>
</dependency>
<!-- Jackson modules. -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- Jackson modules to serialize Jersey response objects to JSON. -->
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- Jackson modules to serialize Jersey response objects to XML. -->
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-xml-provider</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- Asynchronous Websocket-capable client, for message-driven incremental GTFS-RT -->
<!-- AsyncHttpClient Websockets need a newer version of Grizzly than Jersey does. -->
<dependency>
<groupId>com.ning</groupId>
<artifactId>async-http-client</artifactId>
<version>1.8.12</version>
</dependency>
<!-- OTHER DEPENDENCIES -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope> <!-- this dependency is provided by the servlet container -->
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- OBA GTFS loader -->
<dependency>
<groupId>org.onebusaway</groupId>
<artifactId>onebusaway-gtfs</artifactId>
<version>1.3.5-conveyal-SNAPSHOT-2</version>
</dependency>
<!-- Processing is used for the debug GUI (though we could probably use just Java2D) -->
<dependency>
<groupId>org.processing</groupId>
<artifactId>core</artifactId>
<version>1.0.7</version>
</dependency>
<!-- Google Protocol Buffers compact binary serialization format -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.6.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<!-- Joda Time is a widely used replacement for flaky Java time classes. -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.1</version>
</dependency>
<!-- PNGJ is used for making Analyst TimeGrids-->
<dependency>
<groupId>ar.com.hjg</groupId>
<artifactId>pngj</artifactId>
<version>2.0.1</version>
</dependency>
<!-- FlexJSON deserializes JSON in Nominatim/Yahoo/Google geocoder modules. -->
<!-- Could be done with Jackson JSON trees. -->
<dependency>
<groupId>net.sf.flexjson</groupId>
<artifactId>flexjson</artifactId>
<version>2.0</version>
</dependency>
<!-- Apache Axis: Used in NEDDownloader to fetch elevation tiles. -->
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<!-- Apache Axis: Used in NEDDownloader to fetch elevation tiles. -->
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis-jaxrpc</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.4</version>
</dependency>
<!-- Used in DegreeGridNEDTileSource to fetch tiles from Amazon S3 -->
<dependency>
<groupId>net.java.dev.jets3t</groupId>
<artifactId>jets3t</artifactId>
<version>0.8.1</version>
</dependency>
<!-- OpenStreetMap protobuf (PBF) definitions -->
<dependency>
<groupId>crosby.binary</groupId>
<artifactId>osmpbf</artifactId>
<version>1.3.4-SNAPSHOT</version>
</dependency>
<!-- Command line parameter parsing -->
<dependency>
<groupId>com.beust</groupId>
<artifactId>jcommander</artifactId>
<version>1.30</version>
</dependency>
<!-- CSV parser -->
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.0</version>
</dependency>
<!-- Lucene for sophisticated text search -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>4.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queries</artifactId>
<version>4.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>4.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>4.7.1</version>
</dependency>
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-java</artifactId>
<version>2.2.0</version>
</dependency>
<!-- Support for OTP scripting -->
<dependency>
<groupId>bsf</groupId>
<artifactId>bsf</artifactId>
<version>2.4.0</version>
</dependency>
<!--
Scripting language dependencies such as Groovy and Jython can double the size of the OTP JAR.
Therefore we don't include them by default. You can either update the POM in your fork to include the
scripting dependencies, or simply download them and add them to the classpath on the command line.
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.3.8</version>
</dependency>
<dependency>
<groupId>org.python</groupId>
<artifactId>jython</artifactId>
<version>2.7.0</version>
</dependency>
-->
<!-- support for OpenTraffic data -->
<dependency>
<groupId>io.opentraffic</groupId>
<artifactId>traffic-engine</artifactId>
<version>0.2</version>
</dependency>
<!-- r5 is needed only so that we can delegate Analyst work to it -->
<dependency>
<groupId>com.conveyal</groupId>
<artifactId>r5</artifactId>
<version>0.1-SNAPSHOT</version>
<exclusions>
<exclusion>
<artifactId>slf4j-simple</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>