janusgraph-dist
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.janusgraph</groupId>
<artifactId>janusgraph-dist</artifactId>
<version>1.2.0-20251114-142114.b424a8f</version>
</dependency><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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.janusgraph</groupId>
<artifactId>janusgraph</artifactId>
<version>1.2.0-20251114-142114.b424a8f</version>
<relativePath>../pom.xml</relativePath>
</parent>
<packaging>pom</packaging>
<artifactId>janusgraph-dist</artifactId>
<name>JanusGraph-Dist: Tar and Zip Archives</name>
<url>https://janusgraph.org</url>
<properties>
<top.level.basedir>${project.basedir}/..</top.level.basedir>
<!-- Zipfile/Tarfile assembly source paths -->
<assembly.txtfile.dir>${top.level.basedir}</assembly.txtfile.dir>
<assembly.cfilter.in.dir>${project.basedir}/src/assembly/cfilter</assembly.cfilter.in.dir>
<assembly.cfilter.out.dir>${project.build.directory}/cfilter</assembly.cfilter.out.dir>
<assembly.descriptor.dir>${project.basedir}/src/assembly/descriptor</assembly.descriptor.dir>
<assembly.static.dir>${project.basedir}/src/assembly/static</assembly.static.dir>
<assembly.resources.dir>${project.basedir}/src/assembly/resources</assembly.resources.dir>
<assembly.es.dir>${project.build.directory}/elasticsearch-7.17.8</assembly.es.dir>
<assembly.cassandra.dir>${project.build.directory}/apache-cassandra-${cassandra-dist.version}</assembly.cassandra.dir>
<packname.standard>janusgraph-${project.version}</packname.standard>
<packname.full>janusgraph-full-${project.version}</packname.full>
<docker.baseimage>eclipse-temurin:11-jre</docker.baseimage>
<docker.tag-suffix></docker.tag-suffix>
<!-- Variables for integration testing on release-candidate archive files -->
<test.expect.dir>${project.build.directory}/test-classes</test.expect.dir>
<test.zipfile.path>${project.build.directory}/${packname.standard}.zip</test.zipfile.path>
<test.zipfile-full.path>${project.build.directory}/${packname.full}.zip</test.zipfile-full.path>
<build.full>package</build.full>
<test.excluded.groups></test.excluded.groups>
<skipDefaultDistroIT>${it.skip}</skipDefaultDistroIT>
<doc.dir>${project.parent.basedir}/docs</doc.dir>
<docker.build.skip>false</docker.build.skip>
<cql-module>janusgraph-cql</cql-module>
<cql-hadoop-module>cassandra-hadoop-util</cql-hadoop-module>
</properties>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>janusgraph-all</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<artifactId>janusgraph-cql</artifactId>
<groupId>${project.groupId}</groupId>
</exclusion>
<exclusion>
<artifactId>cassandra-hadoop-util</artifactId>
<groupId>${project.groupId}</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- Either "janusgraph-cql" or "janusgraph-scylla" -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>${cql-module}</artifactId>
<version>${project.version}</version>
</dependency>
<!-- Either "cassandra-hadoop-util" or "scylla-hadoop-util" -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>${cql-hadoop-module}</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>${jna.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-console</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>hadoop-gremlin</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>spark-gremlin</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-server</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tinkerpop</groupId>
<artifactId>gremlin-groovy</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>janusgraph-solr</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<artifactId>solr-core</artifactId>
<groupId>org.apache.solr</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.jbellis</groupId>
<artifactId>jamm</artifactId>
<version>${jamm.version}</version>
</dependency>
<!-- Test dependencies -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>janusgraph-test</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>janusgraph-hbase</artifactId>
<version>${project.version}</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>janusgraph-es</artifactId>
<version>${project.version}</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>janusgraph-cql</artifactId>
<version>${project.version}</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>cassandra</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>elasticsearch</artifactId>
<scope>test</scope>
</dependency>
<!-- Logging backends. -->
<!-- Enforce a classpath ordering constraint to ensure log4j is used for logging. -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!-- End logging backends. -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<version>1.9.0</version>
<executions>
<execution>
<id>get-elasticsearch</id>
<phase>generate-test-resources</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<!-- ElasticSearch Server 8 doesn't support Java 8 and Java 11.
Thus, we use here the latest ElasticSearch Server which supports both Java 8 and Java 11 (which is 7.17.8 as for now).
We should probably re-think dist tests and re-develop them using docker containers instead of
relying on the JanusGraph running environment.
-->
<url>https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.8-linux-x86_64.tar.gz</url>
<outputFileName>elasticsearch-7.17.8-linux-x86_64.tar.gz</outputFileName>
<outputDirectory>${project.build.directory}/</outputDirectory>
<unpack>true</unpack>
<!-- https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.8-linux-x86_64.tar.gz.sha512 -->
<sha512>cd02b40e8b32e78f17bac12245326e10482214ab452b2e5d1745ddc7944e60a5b07c01c949c68625d78640bdd46806aeece4e8d620788133993055732d388443</sha512>
<readTimeOut>1800000</readTimeOut>
</configuration>
</execution>
<execution>
<id>get-cassandra</id>
<phase>generate-test-resources</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<url>https://archive.apache.org/dist/cassandra/${cassandra-dist.version}/apache-cassandra-${cassandra-dist.version}-bin.tar.gz</url>
<outputFileName>apache-cassandra-${cassandra-dist.version}-bin.tar.gz</outputFileName>
<outputDirectory>${project.build.directory}/</outputDirectory>
<unpack>true</unpack>
<sha256>${cassandra-dist.version.sha256}</sha256>
<readTimeOut>1800000</readTimeOut>
</configuration>
</execution>
</executions>
</plugin>
<!--
Filter the files in src/release during the
process-resources phase. Disable default resource goal
bindings because we have no main or test resources.
-->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<inherited>false</inherited>
<executions>
<execution>
<id>default-resources</id>
<phase>none</phase>
</execution>
<execution>
<id>default-testResources</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<inherited>false</inherited>
<executions>
<execution>
<id>generate-janusgraph-config-table</id>
<phase>generate-resources</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>org.janusgraph.util.system.ConfigurationPrinter</mainClass>
<arguments>
<argument>org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.ROOT_NS</argument>
<argument>${doc.dir}/configs/janusgraph-cfg.md</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>run-cfilter</id>
<phase>generate-resources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>java</executable>
<arguments>
<!-- Classpath -->
<argument>-classpath</argument>
<classpath/>
<!-- Main Classname -->
<mainClass>org.janusgraph.util.system.ConfigurationFileFilter</mainClass>
<!-- Input directory (processed recursively) -->
<argument>${assembly.cfilter.in.dir}</argument>
<!-- Output directory prefix -->
<argument>${assembly.cfilter.out.dir}</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>generate-janusgraph-gremlin-imports</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<executions>
<execution>
<id>default-deploy</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>compile-tests</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>java-11</id>
<properties>
<packname.standard>janusgraph-java-11-${project.version}</packname.standard>
<packname.full>janusgraph-java-11-full-${project.version}</packname.full>
<docker.baseimage>eclipse-temurin:11-jre</docker.baseimage>
<docker.tag-suffix>-java-11</docker.tag-suffix>
</properties>
</profile>
<profile>
<id>use-scylla</id>
<properties>
<cql-module>janusgraph-scylla</cql-module>
<cql-hadoop-module>scylla-hadoop-util</cql-hadoop-module>
</properties>
</profile>
<profile>
<id>skip-docker</id>
<properties>
<docker.build.skip>true</docker.build.skip>
<skipTests>true</skipTests>
</properties>
</profile>
<profile>
<id>janusgraph-release</id>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>janusgraph-core</artifactId>
<version>${project.version}</version>
<classifier>javadoc</classifier>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>pack-test-jar</id>
<phase>package</phase>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>compile-tests</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>filter-release-resources</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/release</outputDirectory>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>$MAVEN{*}</delimiter>
</delimiters>
<resources>
<resource>
<directory>src/release</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>filter-expect-scripts</id>
<phase>process-test-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${top.level.basedir}/janusgraph-dist/src/test/expect</directory>
<filtering>true</filtering>
</resource>
</resources>
<outputDirectory>${project.build.directory}/test-classes</outputDirectory>
</configuration>
</execution>
<execution>
<id>filter-test-resources</id>
<phase>process-test-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${top.level.basedir}/janusgraph-dist/src/test/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
</configuration>
</execution>
<execution>
<id>copy-test-cfiles</id>
<phase>process-test-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${assembly.cfilter.out.dir}</directory>
<filtering>false</filtering>
</resource>
</resources>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</execution>
<execution>
<id>copy-compat-test-config</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/conf</outputDirectory>
<resources>
<resource>
<directory>${project.parent.basedir}/src/assembly/static/conf</directory>
<includes>
<include>*.properties</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<forkCount>1</forkCount>
<reuseForks>false</reuseForks>
<testClassesDirectory>${top.level.basedir}/janusgraph-dist/target/test-classes</testClassesDirectory>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
<configuration>
<skip>${skipDefaultDistroIT}</skip>
<failIfNoTests>false</failIfNoTests>
<excludedGroups>${test.excluded.groups}</excludedGroups>
<excludes>
<exclude>**/*CompatIT.java</exclude>
</excludes>
</configuration>
</execution>
<!-- Commented until the first 0.9/1.0 release
<execution>
<id>version-compat-integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
<configuration>
<reportNameSuffix>compat</reportNameSuffix>
<failIfNoTests>false</failIfNoTests>
<skip>${skipCompatITs}</skip>
<includes>
<include>**/*CompatIT.java</include>
</includes>
</configuration>
</execution>
-->
<execution>
<id>verify</id>
<phase>verify</phase>
<goals>
<goal>verify</goal>
</goals>
<configuration>
<failIfNoTests>true</failIfNoTests>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>assemble-full-distribution-archive</id>
<phase>${build.full}</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<!--
We set attached=true so that the gpg plugin will
sign all of our assembly artifacts.
-->
<attach>true</attach>
<!--
archive filenames are of the form
${finalName}-${<id /> from assembly descriptor}.${archive
format extension}
-->
<finalName>${packname.full}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<tarLongFileMode>gnu</tarLongFileMode>
<descriptors>
<descriptor>${assembly.descriptor.dir}/archive-full.xml</descriptor>
</descriptors>
<formats>
<format>zip</format>
</formats>
</configuration>
</execution>
<execution>
<id>assemble-distribution-archive</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<!--
We set attached=true so that the gpg plugin will
sign all of our assembly artifacts.
-->
<attach>true</attach>
<!--
archive filenames are of the form
${finalName}-${<id /> from assembly descriptor}.${archive
format extension}
-->
<finalName>${packname.standard}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<tarLongFileMode>gnu</tarLongFileMode>
<descriptors>
<descriptor>${assembly.descriptor.dir}/archive.xml</descriptor>
</descriptors>
<formats>
<format>zip</format>
</formats>
</configuration>
</execution>
<execution>
<id>unpack-janusgraph-core-javadocs</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<attach>false</attach>
<finalName>javadocs</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>${assembly.descriptor.dir}/javadocs.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>docker-build</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<skip>${docker.build.skip}</skip>
<executable>./docker/build-and-push-image.sh</executable>
<workingDirectory>${project.basedir}</workingDirectory>
<arguments>
<argument>${project.version}</argument>
<argument>${docker.baseimage}</argument>
<argument>${packname.standard}</argument>
<argument>no-push</argument>
<argument>${docker.tag-suffix}</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>docker-test</id>
<phase>integration-test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<skip>${skipTests}</skip>
<executable>./docker/test-image.sh</executable>
<workingDirectory>${project.basedir}</workingDirectory>
<arguments>
<argument>docker.io/janusgraph/janusgraph:${project.version}${docker.tag-suffix}</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>docker-deploy</id>
<phase>deploy</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<skip>${docker.build.skip}</skip>
<executable>./docker/build-and-push-image.sh</executable>
<workingDirectory>${project.basedir}</workingDirectory>
<arguments>
<argument>${project.version}</argument>
<argument>${docker.baseimage}</argument>
<argument>${packname.standard}</argument>
<argument>push</argument>
<argument>${docker.tag-suffix}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<!-- gpg must follow assembly.
Both plugins run in the package phase, so only <plugin> ordering
ensures that signing happens after assembly file generation.
Hence this vacuous stanza down here. -->
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>