tinkerpop
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>org.apache.tinkerpop</groupId> <artifactId>tinkerpop</artifactId> <version>4.0.0-beta.1</version> </dependency>
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <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> <parent> <groupId>org.apache</groupId> <artifactId>apache</artifactId> <version>27</version> </parent> <groupId>org.apache.tinkerpop</groupId> <artifactId>tinkerpop</artifactId> <version>4.0.0-beta.1</version> <packaging>pom</packaging> <name>Apache TinkerPop</name> <description>A Graph Computing Framework</description> <url>http://tinkerpop.apache.org/</url> <mailingLists> <mailingList> <name>Users</name> <subscribe>http://groups.google.com/group/gremlin-users</subscribe> <unsubscribe>http://groups.google.com/group/gremlin-users</unsubscribe> <archive>http://groups.google.com/group/gremlin-users/topics</archive> </mailingList> <mailingList> <name>Developers</name> <subscribe>dev-subscribe@tinkerpop.apache.org</subscribe> <unsubscribe>dev-unsubscribe@tinkerpop.apache.org</unsubscribe> <archive>dev-digest-subscribe@tinkerpop.apache.org</archive> </mailingList> </mailingLists> <inceptionYear>2013</inceptionYear> <licenses> <license> <name>Apache 2</name> <url>http://www.opensource.org/licenses/Apache-2.0</url> </license> </licenses> <organization> <name>Apache Software Foundation</name> <url>http://www.apache.org/</url> </organization> <developers> <developer> <name>Marko A. Rodriguez</name> <email>okram@apache.org</email> <url>http://markorodriguez.com</url> </developer> <developer> <name>Stephen Mallette</name> <email>spmallette@apache.org</email> <url>http://stephen.genoprime.com</url> </developer> <developer> <name>Daniel Kuppitz</name> <email>dkuppitz@apache.org</email> <url>http://gremlin.guru</url> </developer> </developers> <contributors> <contributor> <name>Joshua Shinavier</name> <email>josh@fortytwo.net</email> <url>http://fortytwo.net</url> </contributor> <contributor> <name>Michael Pollmeier</name> <email>michael@michaelpollmeier.com</email> <url>http://michaelpollmeier.com</url> </contributor> <contributor> <name>Pieter Martin</name> <email>pieter.martin@gmail.com</email> <url>http://umlg.org</url> </contributor> <contributor> <name>Matt Frantz</name> <email>matthew.h.frantz@gmail.com</email> <url>https://github.com/mhfrantz</url> </contributor> <contributor> <name>Jason Plurad</name> <email>pluradj@gmail.com</email> <url>https://github.com/pluradj</url> </contributor> <contributor> <name>Dylan Millikin</name> <email>dylan.millikin@gmail.com</email> <url>https://github.com/PommeVerte</url> </contributor> <contributor> <name>Ted Wilmes</name> <email>twilmes@gmail.com</email> <url>https://github.com/twilmes</url> </contributor> <contributor> <name>Harsh Thakkar</name> <email>harsh9t@gmail.com</email> <organization>University of Bonn</organization> <organizationUrl>http://harshthakkar.in</organizationUrl> </contributor> <contributor> <name>Dharmen Punjani</name> <email>dharmen.punjani@gmail.com</email> <organization>National and Kapodistrian University of Athens</organization> <organizationUrl>http://wdaqua.eu/students/dharmen-punjani</organizationUrl> </contributor> </contributors> <modules> <module>gremlin-language</module> <module>gremlin-shaded</module> <module>gremlin-core</module> <module>gremlin-annotations</module> <module>gremlin-test</module> <module>gremlin-groovy</module> <module>tinkergraph-gremlin</module> <module>gremlin-javascript</module> <module>gremlin-python</module> <module>gremlin-dotnet</module> <module>gremlin-go</module> <module>hadoop-gremlin</module> <module>spark-gremlin</module> <module>neo4j-gremlin</module> <module>sparql-gremlin</module> <module>gremlin-driver</module> <module>gremlin-console</module> <module>gremlin-server</module> <module>gremlin-tools</module> <module>gremlint</module> <module>gremlin-util</module> </modules> <scm> <connection>scm:git:git@github.com:apache/tinkerpop.git</connection> <developerConnection>scm:git:git@github.com:apache/tinkerpop.git</developerConnection> <url>https://github.com/apache/tinkerpop</url> </scm> <properties> <antlr4.version>4.9.1</antlr4.version> <caffeine.version>2.3.1</caffeine.version> <commons.collections.version>4.4</commons.collections.version> <commons.configuration.version>2.9.0</commons.configuration.version> <commons.lang.version>2.6</commons.lang.version> <commons.io.version>2.8.0</commons.io.version> <commons.lang3.version>3.12.0</commons.lang3.version> <commons.text.version>1.10.0</commons.text.version> <cucumber.version>6.11.0</cucumber.version> <exp4j.version>0.4.8</exp4j.version> <groovy.version>4.0.23</groovy.version> <guice.version>4.2.3</guice.version> <hadoop.version>3.3.3</hadoop.version> <hamcrest.version>2.2</hamcrest.version> <java.tuples.version>1.2</java.tuples.version> <javadoc-plugin.version>3.3.1</javadoc-plugin.version> <javapoet.version>1.13.0</javapoet.version> <jbcrypt.version>0.4</jbcrypt.version> <junit.version>4.13.1</junit.version> <kerby.version>2.0.1</kerby.version> <logback.version>1.2.13</logback.version> <metrics.version>3.0.2</metrics.version> <mockito.version>3.10.0</mockito.version> <netty.version>4.1.101.Final</netty.version> <slf4j.version>1.7.25</slf4j.version> <snakeyaml.version>2.0</snakeyaml.version> <spark.version>3.3.2</spark.version> <awssdk.version>2.29.3</awssdk.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <skipIntegrationTests>true</skipIntegrationTests> <suresafeArgs> </suresafeArgs> <!-- This file will come from the root of each modules test/resources/ directories. logback-silent.xml will turn off all logging possible while still allowing tests to pass. logback-test.xml will be more verbose in its output. --> <logback-test.properties>file:target/test-classes/logback-test.xml</logback-test.properties> <logback-silent.properties>file:target/test-classes/logback-silent.xml</logback-silent.properties> <!-- only needed for hadoop/spark which still are stuck in log4j 1.x - do not depend on these otherwise --> <log4j-test.properties>file:target/test-classes/log4j-test.properties</log4j-test.properties> <log4j-silent.properties>file:target/test-classes/log4j-silent.properties</log4j-silent.properties> <muteTestLogs>false</muteTestLogs> <!-- These options are necessary to run and pass the tests with JDK 17. There are some unexported APIs that we need access to and we still rely on libraries that use deep reflection (notably Kryo). We can probably remove this in the future when we don't need reflection and we turn this into a JPMS module. --> <jdk17JvmArgs> -XX:+IgnoreUnrecognizedVMOptions --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-exports=java.base/sun.security.x509=ALL-UNNAMED --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED </jdk17JvmArgs> </properties> <build> <directory>${basedir}/target</directory> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>2.16.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-all</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <DependencyConvergence/> <requireJavaVersion> <version>[1.8,18)</version> </requireJavaVersion> <requireMavenVersion> <version>[3.5.3,)</version> </requireMavenVersion> </rules> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.2.1</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork</goal> </goals> <configuration> <excludes> <exclude>gremlin-dotnet/src/obj/**</exclude> <exclude>gremlin-dotnet/src/_site/**</exclude> <exclude>gremlin-javascript/src/main/javascript/gremlin-javascript/node_modules/**</exclude> <exclude>gremlin-javascript/src/main/javascript/gremlin-javascript/.idea/**</exclude> <exclude>gremlin-python/src/main/python-reports/**</exclude> <exclude>gremlin-python/src/main/jython/**</exclude> <exclude>gremlin-python/src/main/python/venv/**</exclude> <exclude>gremlin-python/src/main/python/.pytest_cache/**</exclude> <exclude>gremlin-python/src/main/python/.idea/**</exclude> </excludes> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <additionalJOption>-Xdoclint:none</additionalJOption> <tags> <tag> <name>example</name> <placement>aoptcmf</placement> <head>Example:</head> </tag> </tags> </configuration> <executions> <execution> <id>aggregate-in-site-lifecycle</id> <goals> <goal>aggregate</goal> </goals> <phase>site</phase> <configuration> <additionalJOption>-Xdoclint:none</additionalJOption> <includeDependencySources>true</includeDependencySources> <dependencySourceIncludes> <dependencySourceInclude>org.apache.tinkerpop:*</dependencySourceInclude> </dependencySourceIncludes> <overview>${basedir}/docs/javadoc/overview.html</overview> <quiet>true</quiet> </configuration> </execution> <execution> <id>attach-javadoc</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>buildnumber-maven-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <goals> <goal>create</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <!-- source: https://stackoverflow.com/a/39139979/6753576 --> <!-- sets the only.when.is.snapshot.used property to true if SNAPSHOT was used, to the project version otherwise --> <id>build-helper-regex-is-snapshot-used</id> <phase>validate</phase> <goals> <goal>regex-property</goal> </goals> <configuration> <name>only.when.is.snapshot.used</name> <value>${project.version}</value> <regex>.*-SNAPSHOT</regex> <replacement>true</replacement> <failIfNoMatch>false</failIfNoMatch> </configuration> </execution> <execution> <!-- sets the only.when.is.prerelease.version property to true if a prerelease version was used, to the project version otherwise --> <id>build-helper-regex-is-prerelease-version</id> <phase>validate</phase> <goals> <goal>regex-property</goal> </goals> <configuration> <name>only.when.is.prerelease.version</name> <value>${project.version}</value> <regex>.*-.*</regex> <replacement>true</replacement> <failIfNoMatch>false</failIfNoMatch> </configuration> </execution> <execution> <!-- sets the true.when.is.prerelease.version property to true if a prerelease version was used, empty string otherwise --> <id>build-helper-regex-is-prerelease-version2</id> <phase>validate</phase> <goals> <goal>regex-property</goal> </goals> <configuration> <name>true.when.is.prerelease.version</name> <value>${only.when.is.prerelease.version}</value> <regex>${project.version}</regex> <replacement></replacement> <failIfNoMatch>false</failIfNoMatch> </configuration> </execution> <execution> <!-- sets the docker.tags.majorVersion.minorVersion property to ${parsedVersion.majorVersion}.${parsedVersion.minorVersion} unless a prerelease version was, used. If a prerelease is used, an empty string is assigned instead. --> <id>build-helper-regex-set-docker-version-tag</id> <phase>validate</phase> <goals> <goal>regex-property</goal> </goals> <configuration> <name>docker.tags.majorVersion.minorVersion</name> <value>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}${true.when.is.prerelease.version}</value> <regex>.*true</regex> <replacement></replacement> <failIfNoMatch>false</failIfNoMatch> </configuration> </execution> <execution> <!-- sets the docker.tags.latest property to "latest" unless a prerelease version was, used. If a prerelease is used, an empty string is assigned instead. --> <id>build-helper-regex-set-docker-latest-tag</id> <phase>validate</phase> <goals> <goal>regex-property</goal> </goals> <configuration> <name>docker.tags.latest</name> <value>latest${true.when.is.prerelease.version}</value> <regex>.*true</regex> <replacement></replacement> <failIfNoMatch>false</failIfNoMatch> </configuration> </execution> <execution> <id>parse-version</id> <goals> <goal>parse-version</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifestEntries> <version>${project.version}</version> <hash>${buildNumber}</hash> <tinkerpop-version>${project.version}</tinkerpop-version> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.rat</groupId> <artifactId>apache-rat-plugin</artifactId> <version>0.13</version> <executions> <execution> <id>rat-checks</id> <phase>validate</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <configuration> <excludeSubProjects>false</excludeSubProjects> <excludes> <exclude>.mailmap</exclude> <exclude>.asf.yaml</exclude> <exclude>.travis.yml</exclude> <exclude>.travis.*.sh</exclude> <exclude>.dockerignore</exclude> <exclude>.github/**</exclude> <exclude>**/.classpath</exclude> <exclude>**/.project</exclude> <exclude>**/.settings/**</exclude> <exclude>**/.idea/**</exclude> <exclude>.repository/**</exclude> <exclude>**/target/**</exclude> <exclude>data/*.txt</exclude> <exclude>**/bin/gremlin.sh</exclude> <exclude>docs/static/**</exclude> <exclude>docs/original/**</exclude> <exclude>docs/site/home/css/**</exclude> <exclude>docs/site/home/js/**</exclude> <exclude>docs/gremlint/build/**</exclude> <exclude>docs/gremlint/public/CNAME</exclude> <exclude>gremlin-console/bin/gremlin.sh</exclude> <exclude>**/*.kryo</exclude> <exclude>**/*.gbin</exclude> <exclude>**/*.iml</exclude> <exclude>**/*.json</exclude> <exclude>**/*.xml</exclude> <exclude>**/*.ldjson</exclude> <exclude>**/*.graffle</exclude> <exclude>**/*.svg</exclude> <exclude>**/goal.txt</exclude> <exclude>**/src/main/resources/META-INF/services/**</exclude> <exclude>**/src/test/resources/mockito-extensions/**</exclude> <exclude>**/src/test/resources/META-INF/services/**</exclude> <exclude>**/src/test/resources/cucumber.properties</exclude> <exclude>**/src/test/resources/incorrect-traversals.txt</exclude> <exclude>**/src/test/resources/org/apache/tinkerpop/gremlin/console/groovy/plugin/script-customizer-*.groovy</exclude> <exclude>**/src/test/resources/org/apache/tinkerpop/gremlin/jsr223/script-customizer-*.groovy</exclude> <exclude>**/src/test/resources/org/apache/tinkerpop/gremlin/console/jsr223/script-customizer-*.groovy</exclude> <exclude>**/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/script/*.txt</exclude> <exclude>**/src/main/ext/**</exclude> <exclude>**/src/main/static/**</exclude> <exclude>**/_bsp/**</exclude> <exclude>DEPENDENCIES</exclude> <exclude>**/.glv</exclude> <exclude>**/Debug/**</exclude> <exclude>**/Release/**</exclude> <exclude>**/obj/**</exclude> <exclude>**/*.sln</exclude> <exclude>**/*.user</exclude> <exclude>**/*.csproj</exclude> <exclude>**/.vs/**</exclude> <exclude>**/NuGet.Config</exclude> <exclude>**/*.nuspec</exclude> <exclude>**/BenchmarkDotNet.Artifacts/**</exclude> <exclude>**/.nvmrc</exclude> <exclude>**/.yarnrc.yml</exclude> <exclude>**/yarn.lock</exclude> <exclude>**/node/**</exclude> <exclude>**/node_modules/**</exclude> <exclude>**/npm-debug.log</exclude> <exclude>**/build/**</exclude> <!-- javascript docs/lib --> <exclude>**/doc/**</exclude> <exclude>**/lib/**</exclude> <exclude>**/.env</exclude> <exclude>**/.prettierrc</exclude> <exclude>**/_site/**</exclude> <exclude>**/.pytest_cache/**</exclude> <exclude>**/venv/**</exclude> <exclude>**/.eggs/**</exclude> <exclude>**/gremlinpython.egg-info/**</exclude> <exclude>**/docfx/**</exclude> <exclude>**/go.sum</exclude> <exclude>**/coverage.out</exclude> <exclude>**/gremlinconsoletest.egg-info/**</exclude> </excludes> <licenses> <license implementation="org.apache.rat.analysis.license.ApacheSoftwareLicense20"/> </licenses> </configuration> <dependencies> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-core</artifactId> <version>1.6</version> <exclusions> <exclusion> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> </exclusion> </exclusions> </dependency> </dependencies> </plugin> <!-- we never use this plugin - disabling helps with speeding up other processing like when using -Dcoverage --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> <pluginManagement> <plugins> <plugin> <groupId>com.google.code.maven-replacer-plugin</groupId> <artifactId>replacer</artifactId> <version>1.5.3</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>replace</goal> </goals> </execution> </executions> <configuration> <basedir>${basedir}</basedir> </configuration> </plugin> <!-- there is a jdk11 profile that will be enabled if built with that version - these settings will be overriden --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> <compilerArgs> <arg>-parameters</arg> </compilerArgs> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>3.0.0</version> </plugin> <!-- reverted surefire to 2.21.0 for performance reasons. 2.22.2 required forkCount=1 and reuseForks=true which seemed to more the double the build time. there are only milestone releases after 2.22.2 so rather than rely on those at this time, i guess we just stick with 2.21.0 the above note was from 3.5.0. for 3.6.0 tried this change as part of bumping to newer versions of hadoop/spark and didn't see a slow down in execution time. going to newer versions of surefire/failsafe, the aforementioned milestone releases, however seemed to cause test failures for spark integration tests. it was not clear why. note that while we got rid of log4j 1.x and have converted to logback, hadoop seems bound tightly to the former. included the log4j configuration file here so that we didn't have to copy/paste this entire config into both hadoop-gremlin and spark-gremlin. it is of no cost to maintain these settings here globally even if they aren't used as such. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> <configuration> <argLine> -Dlogback.configuration=${logback-test.properties} -Dlog4j.configuration=${log4j-test.properties} -Dbuild.dir=${project.build.directory} -Dis.testing=true -Djava.net.preferIPv4Stack=true ${suresafeArgs} ${jdk17JvmArgs} </argLine> <trimStackTrace>false</trimStackTrace> <excludes> <exclude>**/*IntegrateTest.java</exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.22.2</version> <executions> <execution> <id>integration-test</id> <goals> <goal>integration-test</goal> </goals> <configuration> <includes> <include>**/*IntegrateTest.java</include> </includes> <skipTests>${skipIntegrationTests}</skipTests> <argLine> -Dlogback.configuration=${logback-test.properties} -Dlog4j.configuration=${log4j-test.properties} -Dhost=localhost -Dport=8182 -Dbuild.dir=${project.build.directory} -Dis.testing=true -Djava.net.preferIPv4Stack=true ${suresafeArgs} ${jdk17JvmArgs} </argLine> <forkCount>1</forkCount> <reuseForks>false</reuseForks> <summaryFile>target/failsafe-reports/failsafe-integration.xml</summaryFile> </configuration> </execution> <execution> <id>verify-integration-test</id> <goals> <goal>verify</goal> </goals> <configuration> <skipTests>${skipIntegrationTests}</skipTests> <summaryFiles> <summaryFile>target/failsafe-reports/failsafe-integration.xml</summaryFile> </summaryFiles> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.asciidoctor</groupId> <artifactId>asciidoctor-maven-plugin</artifactId> <version>2.2.4</version> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.1.0</version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>xml-maven-plugin</artifactId> <version>1.0.2</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${javadoc-plugin.version}</version> <configuration> <source>1.8</source> </configuration> </plugin> <plugin> <groupId>org.codehaus.gmavenplus</groupId> <artifactId>gmavenplus-plugin</artifactId> <version>2.1.0</version> <configuration> <targetBytecode>1.8</targetBytecode> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.4.1</version> <configuration> <createDependencyReducedPom>false</createDependencyReducedPom> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.3.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> </plugin> <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.43.4</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>3.1.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.0.0-M3</version> </plugin> </plugins> </pluginManagement> </build> <dependencyManagement> <dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-configuration2</artifactId> <version>${commons.configuration.version}</version> <exclusions> <!-- still on 1.8 and we need 1.9 --> <exclusion> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> <version>${commons.text.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>${commons.collections.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons.lang3.version}</version> </dependency> <dependency> <groupId>com.codahale.metrics</groupId> <artifactId>metrics-core</artifactId> <version>${metrics.version}</version> <exclusions> <!-- conflict with jcl-over-slf4j--> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.codahale.metrics</groupId> <artifactId>metrics-graphite</artifactId> <version>${metrics.version}</version> <optional>true</optional> <exclusions> <!-- conflict with jcl-over-slf4j--> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.codahale.metrics</groupId> <artifactId>metrics-ganglia</artifactId> <version>${metrics.version}</version> <optional>true</optional> <exclusions> <!-- conflict with jcl-over-slf4j--> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <!-- LGPL licensed - users will need to install this jar manually --> <exclusion> <groupId>org.acplt</groupId> <artifactId>oncrpc</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> <exclusions> <!-- exclude commons-logging in favor of slf4j via jcl-over-slf4j --> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version> <exclusions> <!-- bring commons-codec in line with TinkerPop --> <exclusion> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <exclusions> <exclusion> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>${mockito.version}</version> <exclusions> <exclusion> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.objenesis</groupId> <artifactId>objenesis</artifactId> <version>3.3</version> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest</artifactId> <version>${hamcrest.version}</version> </dependency> <dependency> <groupId>io.github.hakky54</groupId> <artifactId>logcaptor</artifactId> <version>2.7.10</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.8</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>${commons.io.version}</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.15</version> </dependency> </dependencies> </dependencyManagement> <profiles> <profile> <id>jdk11</id> <activation> <jdk>[11,18)</jdk> </activation> <properties> <suresafeArgs>--illegal-access=permit</suresafeArgs> </properties> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <release>8</release> <compilerArgs> <arg>-parameters</arg> </compilerArgs> </configuration> </plugin> </plugins> </pluginManagement> </build> </profile> <profile> <id>asciidoc</id> <activation> <activeByDefault>false</activeByDefault> <property> <name>asciidoc</name> </property> </activation> <properties> <!-- the source asciidocs are copied from /docs to asciidoc.source.dir by bin/process-docs.sh where they can the scripts embedded in the text are then executed and their results shoved back into the doc --> <asciidoc.source.dir>${project.basedir}/target/postprocess-asciidoc</asciidoc.source.dir> <!-- once code processing is over, the documents are basically ready for the formatter and are copied by way of the maven-resources-plugin to asciidoc.input.dir where they will be processed by the asciidoctor plugin --> <asciidoc.input.dir>${project.basedir}/target/doc-source</asciidoc.input.dir> <!-- the output directory for the asciidoctor plugin - finalized documents can be found here --> <htmlsingle.output.dir>${project.basedir}/target/docs/htmlsingle</htmlsingle.output.dir> <asciidoctor.style.dir>${asciidoc.input.dir}/stylesheets</asciidoctor.style.dir> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <inherited>false</inherited> <executions> <!-- copies docs already handled by the preprocessor to their staging area for asciidoc formatting --> <execution> <id>copy-docs-to-work-area</id> <phase>generate-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${asciidoc.input.dir}</outputDirectory> <resources> <resource> <directory>${asciidoc.source.dir}</directory> <filtering>false</filtering> </resource> </resources> </configuration> </execution> <!-- copies images/resources to staging area for asciidoc formatting --> <execution> <id>copy-static-assets-to-htmlsingle</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${htmlsingle.output.dir}</outputDirectory> <resources> <resource> <directory>${asciidoc.input.dir}/static</directory> <filtering>false</filtering> </resource> </resources> <nonFilteredFileExtensions> <nonFilteredFileExtension>png</nonFilteredFileExtension> <nonFilteredFileExtension>py</nonFilteredFileExtension> </nonFilteredFileExtensions> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.asciidoctor</groupId> <artifactId>asciidoctor-maven-plugin</artifactId> <inherited>false</inherited> <executions> <execution> <id>home</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <resources> <resource> <directory>${asciidoc.input.dir}</directory> <targetPath>${htmlsingle.output.dir}</targetPath> <includes> <include>index.asciidoc</include> </includes> <excludes> <exclude>${asciidoc.input.dir}/static/*.*</exclude> </excludes> </resource> </resources> <sourceDirectory>${asciidoc.input.dir}</sourceDirectory> <outputDirectory>${htmlsingle.output.dir}</outputDirectory> <sourceDocumentName>index.asciidoc</sourceDocumentName> <backend>html5</backend> <doctype>article</doctype> <attributes> <imagesdir>images</imagesdir> <encoding>UTF-8</encoding> <stylesdir>${asciidoctor.style.dir}</stylesdir> <stylesheet>tinkerpop.css</stylesheet> <source-highlighter>coderay</source-highlighter> <basedir>${project.basedir}</basedir> <docinfo>shared</docinfo> <docinfodir>${project.basedir}/docs/src</docinfodir> </attributes> </configuration> </execution> <execution> <id>reference-book</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <sourceDirectory>${asciidoc.input.dir}/reference</sourceDirectory> <sourceDocumentName>index.asciidoc</sourceDocumentName> <outputDirectory>${htmlsingle.output.dir}/reference</outputDirectory> <backend>html5</backend> <doctype>book</doctype> <attributes> <imagesdir>../images</imagesdir> <encoding>UTF-8</encoding> <toc>true</toc> <toclevels>3</toclevels> <toc-position>left</toc-position> <stylesdir>${asciidoctor.style.dir}</stylesdir> <stylesheet>tinkerpop.css</stylesheet> <source-highlighter>coderay</source-highlighter> <basedir>${project.basedir}</basedir> <docinfo>shared</docinfo> <docinfodir>${project.basedir}/docs/src</docinfodir> </attributes> </configuration> </execution> <execution> <id>upgrade-book</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <sourceDirectory>${asciidoc.input.dir}/upgrade</sourceDirectory> <sourceDocumentName>index.asciidoc</sourceDocumentName> <outputDirectory>${htmlsingle.output.dir}/upgrade</outputDirectory> <backend>html5</backend> <doctype>book</doctype> <attributes> <imagesdir>../images</imagesdir> <encoding>UTF-8</encoding> <toc>true</toc> <toclevels>3</toclevels> <toc-position>left</toc-position> <stylesdir>${asciidoctor.style.dir}</stylesdir> <stylesheet>tinkerpop.css</stylesheet> <source-highlighter>coderay</source-highlighter> <basedir>${project.basedir}</basedir> <docinfo>shared</docinfo> <docinfodir>${project.basedir}/docs/src</docinfodir> </attributes> </configuration> </execution> <execution> <id>developer-book</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <sourceDirectory>${asciidoc.input.dir}/dev/developer</sourceDirectory> <sourceDocumentName>index.asciidoc</sourceDocumentName> <outputDirectory>${htmlsingle.output.dir}/dev/developer</outputDirectory> <backend>html5</backend> <doctype>book</doctype> <attributes> <imagesdir>../../images</imagesdir> <encoding>UTF-8</encoding> <toc>true</toc> <toclevels>3</toclevels> <toc-position>left</toc-position> <stylesdir>${asciidoctor.style.dir}</stylesdir> <stylesheet>tinkerpop.css</stylesheet> <source-highlighter>coderay</source-highlighter> <basedir>${project.basedir}</basedir> <docinfo>shared</docinfo> <docinfodir>${project.basedir}/docs/src</docinfodir> </attributes> </configuration> </execution> <execution> <id>future-book</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <sourceDirectory>${asciidoc.input.dir}/dev/future</sourceDirectory> <sourceDocumentName>index.asciidoc</sourceDocumentName> <outputDirectory>${htmlsingle.output.dir}/dev/future</outputDirectory> <backend>html5</backend> <doctype>book</doctype> <attributes> <imagesdir>../../images</imagesdir> <encoding>UTF-8</encoding> <toc>true</toc> <toclevels>3</toclevels> <toc-position>left</toc-position> <stylesdir>${asciidoctor.style.dir}</stylesdir> <stylesheet>tinkerpop.css</stylesheet> <source-highlighter>coderay</source-highlighter> <basedir>${project.basedir}</basedir> <docinfo>shared</docinfo> <docinfodir>${project.basedir}/docs/src</docinfodir> </attributes> </configuration> </execution> <execution> <id>io-book</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <sourceDirectory>${asciidoc.input.dir}/dev/io</sourceDirectory> <sourceDocumentName>index.asciidoc</sourceDocumentName> <outputDirectory>${htmlsingle.output.dir}/dev/io</outputDirectory> <backend>html5</backend> <doctype>book</doctype> <attributes> <imagesdir>../../images</imagesdir> <encoding>UTF-8</encoding> <toc>true</toc> <toclevels>3</toclevels> <toc-position>left</toc-position> <stylesdir>${asciidoctor.style.dir}</stylesdir> <stylesheet>tinkerpop.css</stylesheet> <source-highlighter>coderay</source-highlighter> <basedir>${project.basedir}</basedir> <docinfo>shared</docinfo> <docinfodir>${project.basedir}/docs/src</docinfodir> </attributes> </configuration> </execution> <execution> <id>provider-book</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <sourceDirectory>${asciidoc.input.dir}/dev/provider</sourceDirectory> <sourceDocumentName>index.asciidoc</sourceDocumentName> <outputDirectory>${htmlsingle.output.dir}/dev/provider</outputDirectory> <backend>html5</backend> <doctype>book</doctype> <attributes> <imagesdir>../../images</imagesdir> <encoding>UTF-8</encoding> <toc>true</toc> <toclevels>3</toclevels> <toc-position>left</toc-position> <stylesdir>${asciidoctor.style.dir}</stylesdir> <stylesheet>tinkerpop.css</stylesheet> <source-highlighter>coderay</source-highlighter> <basedir>${project.basedir}</basedir> <docinfo>shared</docinfo> <docinfodir>${project.basedir}/docs/src</docinfodir> </attributes> </configuration> </execution> <execution> <id>recipe-book</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <sourceDirectory>${asciidoc.input.dir}/recipes</sourceDirectory> <sourceDocumentName>index.asciidoc</sourceDocumentName> <outputDirectory>${htmlsingle.output.dir}/recipes</outputDirectory> <backend>html5</backend> <doctype>book</doctype> <attributes> <imagesdir>../images</imagesdir> <encoding>UTF-8</encoding> <toc>true</toc> <toclevels>2</toclevels> <toc-position>left</toc-position> <stylesdir>${asciidoctor.style.dir}</stylesdir> <stylesheet>tinkerpop.css</stylesheet> <source-highlighter>coderay</source-highlighter> <basedir>${project.basedir}</basedir> <docinfo>shared</docinfo> <docinfodir>${project.basedir}/docs/src</docinfodir> </attributes> </configuration> </execution> <execution> <id>tutorial-getting-started</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <sourceDirectory>${asciidoc.input.dir}/tutorials/getting-started</sourceDirectory> <sourceDocumentName>index.asciidoc</sourceDocumentName> <outputDirectory>${htmlsingle.output.dir}/tutorials/getting-started </outputDirectory> <backend>html5</backend> <doctype>article</doctype> <attributes> <imagesdir>../../images</imagesdir> <encoding>UTF-8</encoding> <stylesdir>${asciidoctor.style.dir}</stylesdir> <stylesheet>tinkerpop.css</stylesheet> <source-highlighter>coderay</source-highlighter> <basedir>${project.basedir}</basedir> <docinfo>shared</docinfo> <docinfodir>${project.basedir}/docs/src</docinfodir> </attributes> </configuration> </execution> <execution> <id>tutorial-the-gremlin-console</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <sourceDirectory>${asciidoc.input.dir}/tutorials/the-gremlin-console </sourceDirectory> <sourceDocumentName>index.asciidoc</sourceDocumentName> <outputDirectory>${htmlsingle.output.dir}/tutorials/the-gremlin-console </outputDirectory> <backend>html5</backend> <doctype>article</doctype> <attributes> <imagesdir>../../images</imagesdir> <encoding>UTF-8</encoding> <stylesdir>${asciidoctor.style.dir}</stylesdir> <stylesheet>tinkerpop.css</stylesheet> <source-highlighter>coderay</source-highlighter> <basedir>${project.basedir}</basedir> <docinfo>shared</docinfo> <docinfodir>${project.basedir}/docs/src</docinfodir> </attributes> </configuration> </execution> <execution> <id>tutorial-gremlin-language-variants</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <sourceDirectory>${asciidoc.input.dir}/tutorials/gremlin-language-variants </sourceDirectory> <sourceDocumentName>index.asciidoc</sourceDocumentName> <outputDirectory>${htmlsingle.output.dir}/tutorials/gremlin-language-variants </outputDirectory> <backend>html5</backend> <doctype>article</doctype> <attributes> <imagesdir>../../images</imagesdir> <encoding>UTF-8</encoding> <stylesdir>${asciidoctor.style.dir}</stylesdir> <stylesheet>tinkerpop.css</stylesheet> <source-highlighter>coderay</source-highlighter> <basedir>${project.basedir}</basedir> <docinfo>shared</docinfo> <docinfodir>${project.basedir}/docs/src</docinfodir> </attributes> </configuration> </execution> <execution> <id>tutorial-gremlins-anatomy</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <sourceDirectory>${asciidoc.input.dir}/tutorials/gremlins-anatomy</sourceDirectory> <sourceDocumentName>index.asciidoc</sourceDocumentName> <outputDirectory>${htmlsingle.output.dir}/tutorials/gremlins-anatomy </outputDirectory> <backend>html5</backend> <doctype>article</doctype> <attributes> <imagesdir>../../images</imagesdir> <encoding>UTF-8</encoding> <stylesdir>${asciidoctor.style.dir}</stylesdir> <stylesheet>tinkerpop.css</stylesheet> <source-highlighter>coderay</source-highlighter> <basedir>${project.basedir}</basedir> <docinfo>shared</docinfo> <docinfodir>${project.basedir}/docs/src</docinfodir> </attributes> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>javadoc</id> <activation> <activeByDefault>false</activeByDefault> <property> <name>javadoc</name> </property> </activation> <properties> <javadoc.dir>${project.build.directory}/site/apidocs</javadoc.dir> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> <!-- There's a maven-javadoc-plugin:aggregate execution above, but it's bound to the site lifecycle, so we can't rely on it. This execution binds to the default lifecycle. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <executions> <execution> <id>aggregate-full-in-default-lifecycle</id> <goals> <goal>javadoc</goal> </goals> <phase>generate-sources</phase> <inherited>false</inherited> <configuration> <destDir>full</destDir> <additionalJOption>-Xdoclint:none</additionalJOption> <overview>${basedir}/docs/javadoc/overview.html</overview> <quiet>true</quiet> <sourcepath> gremlin-annotations/src/main/java:gremlin-language/target/generated-sources/antlr4:gremlin-core/src/main/java:gremlin-driver/src/main/java:gremlin-groovy/src/main/java:gremlin-groovy/target/generated-sources/annotations:gremlin-groovy/target/generated-sources/groovy-stubs/main:gremlin-server/src/main/java:gremlin-test/src/main/java:tinkergraph-gremlin/src/main/java:gremlin-util/src/main/java </sourcepath> <dependencySourceIncludes> <dependencySourceInclude>org.apache.tinkerpop:*</dependencySourceInclude> </dependencySourceIncludes> <additionalDependencies> <additionalDependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> <version>${caffeine.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-buffer</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-codec</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-codec-http</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>org.mindrot</groupId> <artifactId>jbcrypt</artifactId> <version>${jbcrypt.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-common</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-handler</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-transport</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-transport-classes-epoll</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>org.antlr</groupId> <artifactId>antlr4</artifactId> <version>${antlr4.version}</version> </additionalDependency> <additionalDependency> <groupId>org.antlr</groupId> <artifactId>antlr4-runtime</artifactId> <version>${antlr4.version}</version> </additionalDependency> <additionalDependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> <version>${guice.version}</version> </additionalDependency> <additionalDependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>${mockito.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.commons</groupId> <artifactId>commons-configuration2</artifactId> <version>${commons.configuration.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>${commons.collections.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> <version>${commons.text.version}</version> </additionalDependency> <additionalDependency> <groupId>com.codahale.metrics</groupId> <artifactId>metrics-core</artifactId> <version>${metrics.version}</version> </additionalDependency> <additionalDependency> <groupId>com.codahale.metrics</groupId> <artifactId>metrics-graphite</artifactId> <version>${metrics.version}</version> </additionalDependency> <additionalDependency> <groupId>com.codahale.metrics</groupId> <artifactId>metrics-ganglia</artifactId> <version>${metrics.version}</version> </additionalDependency> <additionalDependency> <groupId>info.ganglia.gmetric4j</groupId> <artifactId>gmetric4j</artifactId> <version>1.0.10</version> </additionalDependency> <additionalDependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest</artifactId> <version>${hamcrest.version}</version> </additionalDependency> <additionalDependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-core</artifactId> <version>${cucumber.version}</version> </additionalDependency> <!-- datatable doesn't align with cucumber.version until 7.x --> <additionalDependency> <groupId>io.cucumber</groupId> <artifactId>datatable</artifactId> <version>4.1.0</version> </additionalDependency> <additionalDependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>${cucumber.version}</version> </additionalDependency> <additionalDependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>${cucumber.version}</version> </additionalDependency> <additionalDependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-guice</artifactId> <version>${cucumber.version}</version> </additionalDependency> <additionalDependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.kerby</groupId> <artifactId>kerb-simplekdc</artifactId> <version>${kerby.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.kerby</groupId> <artifactId>kerb-server</artifactId> <version>${kerby.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.kerby</groupId> <artifactId>kerb-client</artifactId> <version>${kerby.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.kerby</groupId> <artifactId>kerb-common</artifactId> <version>${kerby.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.kerby</groupId> <artifactId>kerb-core</artifactId> <version>${kerby.version}</version> </additionalDependency> <additionalDependency> <groupId>org.javatuples</groupId> <artifactId>javatuples</artifactId> <version>${java.tuples.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.tinkerpop</groupId> <artifactId>gremlin-shaded</artifactId> <version>${project.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.groovy</groupId> <artifactId>groovy</artifactId> <version>${groovy.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.groovy</groupId> <artifactId>groovy-jsr223</artifactId> <version>${groovy.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.groovy</groupId> <artifactId>groovy-groovysh</artifactId> <version>${groovy.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.groovy</groupId> <artifactId>groovy-json</artifactId> <version>${groovy.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons.lang3.version}</version> </additionalDependency> <additionalDependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>${commons.lang.version}</version> </additionalDependency> <additionalDependency> <groupId>com.squareup</groupId> <artifactId>javapoet</artifactId> <version>${javapoet.version}</version> </additionalDependency> <additionalDependency> <groupId>net.objecthunter</groupId> <artifactId>exp4j</artifactId> <version>${exp4j.version}</version> </additionalDependency> <additionalDependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </additionalDependency> <additionalDependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>${snakeyaml.version}</version> </additionalDependency> <additionalDependency> <groupId>software.amazon.awssdk</groupId> <artifactId>http-auth-aws</artifactId> <version>${awssdk.version}</version> </additionalDependency> <additionalDependency> <groupId>software.amazon.awssdk</groupId> <artifactId>http-auth-spi</artifactId> <version>${awssdk.version}</version> </additionalDependency> <additionalDependency> <groupId>software.amazon.awssdk</groupId> <artifactId>http-client-spi</artifactId> <version>${awssdk.version}</version> </additionalDependency> <additionalDependency> <groupId>software.amazon.awssdk</groupId> <artifactId>auth</artifactId> <version>${awssdk.version}</version> </additionalDependency> <additionalDependency> <groupId>software.amazon.awssdk</groupId> <artifactId>utils</artifactId> <version>${awssdk.version}</version> </additionalDependency> <additionalDependency> <groupId>software.amazon.awssdk</groupId> <artifactId>protocol-core</artifactId> <version>${awssdk.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apiguardian</groupId> <artifactId>apiguardian-api</artifactId> <version>1.1.2</version> </additionalDependency> </additionalDependencies> </configuration> </execution> <execution> <id>aggregate-core-in-default-lifecycle</id> <goals> <goal>javadoc</goal> </goals> <phase>generate-sources</phase> <inherited>false</inherited> <configuration> <destDir>core</destDir> <additionalJOption>-Xdoclint:none</additionalJOption> <overview>${basedir}/docs/javadoc/overview.html</overview> <quiet>true</quiet> <sourcepath> gremlin-language/target/generated-sources/antlr4:gremlin-core/src/main/java:gremlin-driver/src/main/java:gremlin-util/src/main/java </sourcepath> <sourceFileIncludes> <!-- jsr223 --> <include> org/apache/tinkerpop/gremlin/jsr223/*.java </include> <include> org/apache/tinkerpop/gremlin/jsr223/console/*.java </include> <!-- structure --> <include> org/apache/tinkerpop/gremlin/structure/*.java </include> <!-- io --> <include> org/apache/tinkerpop/gremlin/structure/io/*.java </include> <include> org/apache/tinkerpop/gremlin/structure/io/graphml/GraphMLReader.java </include> <include> org/apache/tinkerpop/gremlin/structure/io/graphml/GraphMLWriter.java </include> <include> org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONReader.java </include> <include> org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONWriter.java </include> <include> org/apache/tinkerpop/gremlin/structure/io/gryo/GryoReader.java </include> <include> org/apache/tinkerpop/gremlin/structure/io/gryo/GryoWriter.java </include> <!-- process --> <include> org/apache/tinkerpop/gremlin/process/*.java </include> <!-- computer --> <include>org/apache/tinkerpop/gremlin/process/computer/*.java </include> <include> org/apache/tinkerpop/gremlin/process/computer/clustering/connected/ConnectedComponentVertexProgram.java </include> <include> org/apache/tinkerpop/gremlin/process/computer/clustering/peerpressure/PeerPressureVertexProgram.java </include> <include> org/apache/tinkerpop/gremlin/process/computer/ranking/pagerank/PageRankVertexProgram.java </include> <include> org/apache/tinkerpop/gremlin/process/computer/search/path/ShortestPathVertexProgram.java </include> <include> org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java </include> <!-- traversal --> <include> org/apache/tinkerpop/gremlin/process/traversal/*.java </include> <include> org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java </include> <include> org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.java </include> <!-- driver --> <include>org/apache/tinkerpop/gremlin/driver/*.java </include> <!-- util --> <include>org/apache/tinkerpop/gremlin/util/*.java </include> </sourceFileIncludes> <additionalDependencies> <additionalDependency> <groupId>org.antlr</groupId> <artifactId>antlr4</artifactId> <version>${antlr4.version}</version> </additionalDependency> <additionalDependency> <groupId>org.antlr</groupId> <artifactId>antlr4-runtime</artifactId> <version>${antlr4.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> <version>${commons.text.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-buffer</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-codec</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-codec-http</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-common</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-handler</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-transport</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-transport-classes-epoll</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>${commons.collections.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.commons</groupId> <artifactId>commons-configuration2</artifactId> <version>${commons.configuration.version}</version> </additionalDependency> <additionalDependency> <groupId>org.javatuples</groupId> <artifactId>javatuples</artifactId> <version>${java.tuples.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.tinkerpop</groupId> <artifactId>gremlin-shaded</artifactId> <version>${project.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.groovy</groupId> <artifactId>groovy-groovysh</artifactId> <version>${groovy.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.groovy</groupId> <artifactId>groovy-json</artifactId> <version>${groovy.version}</version> </additionalDependency> <additionalDependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons.lang3.version}</version> </additionalDependency> <additionalDependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>${commons.lang.version}</version> </additionalDependency> <additionalDependency> <groupId>com.squareup</groupId> <artifactId>javapoet</artifactId> <version>${javapoet.version}</version> </additionalDependency> <additionalDependency> <groupId>net.objecthunter</groupId> <artifactId>exp4j</artifactId> <version>${exp4j.version}</version> </additionalDependency> <additionalDependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </additionalDependency> <additionalDependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>${netty.version}</version> </additionalDependency> <additionalDependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>${snakeyaml.version}</version> </additionalDependency> <additionalDependency> <groupId>software.amazon.awssdk</groupId> <artifactId>http-auth-aws</artifactId> <version>${awssdk.version}</version> </additionalDependency> <additionalDependency> <groupId>software.amazon.awssdk</groupId> <artifactId>http-auth-spi</artifactId> <version>${awssdk.version}</version> </additionalDependency> <additionalDependency> <groupId>software.amazon.awssdk</groupId> <artifactId>http-client-spi</artifactId> <version>${awssdk.version}</version> </additionalDependency> <additionalDependency> <groupId>software.amazon.awssdk</groupId> <artifactId>auth</artifactId> <version>${awssdk.version}</version> </additionalDependency> <additionalDependency> <groupId>software.amazon.awssdk</groupId> <artifactId>utils</artifactId> <version>${awssdk.version}</version> </additionalDependency> <additionalDependency> <groupId>software.amazon.awssdk</groupId> <artifactId>protocol-core</artifactId> <version>${awssdk.version}</version> </additionalDependency> </additionalDependencies> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>apply-filters-to-javadoc</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/target/javadoc-temp</outputDirectory> <resources> <resource> <directory>${basedir}/target/site/apidocs</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> <execution> <id>copy-java-doc-back</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/target/site/apidocs</outputDirectory> <resources> <resource> <directory>${basedir}/target/javadoc-temp</directory> </resource> </resources> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <!-- Continuous Integration - mutes test logs and skip javadoc generation to lighten output --> <id>ci</id> <activation> <activeByDefault>false</activeByDefault> <property> <name>ci</name> </property> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${javadoc-plugin.version}</version> <configuration> <skip>true</skip> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine> -Dlogback.configuration=${logback-silent.properties} -Dlog4j.configuration=${log4j-silent.properties} -Dbuild.dir=${project.build.directory} -Dis.testing=true -Djava.net.preferIPv4Stack=true ${suresafeArgs} ${jdk17JvmArgs} </argLine> <excludes> <exclude>**/*IntegrateTest.java</exclude> </excludes> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>grapes</id> <activation> <activeByDefault>false</activeByDefault> <property> <name>cleanGrapes</name> </property> </activation> <build> <plugins> <plugin> <artifactId>exec-maven-plugin</artifactId> <groupId>org.codehaus.mojo</groupId> <version>3.1.1</version> <inherited>false</inherited> <executions> <execution> <id>clean-grapes</id> <phase>clean</phase> <goals> <goal>exec</goal> </goals> <configuration> <executable>${basedir}/bin/clean-grapes.sh</executable> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>coverage</id> <activation> <activeByDefault>false</activeByDefault> <property> <name>coverage</name> </property> </activation> <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <executions> <execution> <id>prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> <configuration> <destFile>target/jacoco.exec</destFile> <append>true</append> <propertyName>surefireArgLine</propertyName> <excludes> <exclude>Lib/*.class</exclude> <exclude>Lib/aenum/**</exclude> <exclude>Lib/backports/**</exclude> <exclude>Lib/certifi/**</exclude> <exclude>Lib/setuptools/**</exclude> <exclude>Lib/setuptools.command/**</exclude> <exclude>Lib/tornado/**</exclude> <exclude>Lib/tornado.platform/**</exclude> <exclude>Lib/tornado.test/**</exclude> </excludes> </configuration> </execution> <execution> <id>report</id> <phase>install</phase> <goals> <goal>report</goal> </goals> </execution> <execution> <id>prepare-it-agent</id> <phase>pre-integration-test</phase> <goals> <goal>prepare-agent</goal> </goals> <configuration> <destFile>target/jacoco-it.exec</destFile> <append>true</append> <propertyName>failsafeArgLine</propertyName> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>@{surefireArgLine} -Dlogback.configuration=${logback-test.properties} -Dlog4j.configuration=${log4j-test.properties} -Dbuild.dir=${project.build.directory} -Dis.testing=true ${suresafeArgs} -Djava.net.preferIPv4Stack=true </argLine> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <argLine>@{failsafeArgLine} -Dlogback.configuration=${logback-test.properties} -Dlog4j.configuration=${log4j-test.properties} -Dhost=localhost -Dport=8182 -Dbuild.dir=${project.build.directory} -Dis.testing=true ${suresafeArgs} -Djava.net.preferIPv4Stack=true </argLine> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> <version>2.22.2</version> <executions> <execution> <id>aggregate-surefire-report</id> <goals> <goal>report</goal> </goals> <phase>install</phase> <configuration> <aggregate>true</aggregate> <alwaysGenerateSurefireReport>true</alwaysGenerateSurefireReport> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- overriding the default apache release a bit from here: https://github.com/apache/maven-apache-parent/blob/apache-21/pom.xml because it doesn't filter all the files out that we need as it assumes a pure java infrastructure and we have all manner of different languages hanging about --> <profile> <id>apache-release</id> <build> <plugins> <!-- Create a source-release artifact that contains the fully buildable project directory source structure. This is the artifact which is the official subject of any release vote. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <executions> <!-- explicitly ignore the apache parent execution or we generate two zips --> <execution> <id>source-release-assembly</id> <phase>none</phase> </execution> <!-- this is the tinkerpop version that generates the "good" zip --> <execution> <id>tinkerpop-source-release-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot> <descriptors> <descriptor>source-release.xml</descriptor> </descriptors> <tarLongFileMode>posix</tarLongFileMode> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>