questdb
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.questdb</groupId>
<artifactId>questdb</artifactId>
<version>9.4.3</version>
</dependency><!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ ___ _ ____ ____
~ / _ \ _ _ ___ ___| |_| _ \| __ )
~ | | | | | | |/ _ \/ __| __| | | | _ \
~ | |_| | |_| | __/\__ \ |_| |_| | |_) |
~ \__\_\\__,_|\___||___/\__|____/|____/
~
~ Copyright (c) 2014-2019 Appsicle
~ Copyright (c) 2019-2026 QuestDB
~
~ Licensed 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>
<name>QuestDB</name>
<description>QuestDB is high performance SQL time series database</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.javadoc.skip>false</maven.javadoc.skip>
<outputPath>target</outputPath>
<runtime.assembly>none</runtime.assembly>
<javac.target>25</javac.target>
<argLine>-ea -Dfile.encoding=UTF-8 -XX:+UseParallelGC --sun-misc-unsafe-memory-access=allow --enable-native-access=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.time.zone=ALL-UNNAMED</argLine>
<test.exclude>None</test.exclude>
<test.include>%regex[.*[^o].class]</test.include><!-- exclude module-info.class-->
<web.console.version>1.2.3</web.console.version>
<qdbr.path>rust/qdbr</qdbr.path>
<qdbr.release>false</qdbr.release>
<!--
For production builds, use -P qdbr-release
-->
<qdbr.rustflags>-D warnings</qdbr.rustflags>
<questdb.client.version>1.3.4</questdb.client.version>
</properties>
<version>9.4.3</version>
<groupId>org.questdb</groupId>
<artifactId>questdb</artifactId>
<packaging>jar</packaging>
<url>https://questdb.io/</url>
<licenses>
<license>
<name>Apache 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>QuestDB Team</name>
<email>hello@questdb.io</email>
</developer>
</developers>
<scm>
<url>scm:git:https://github.com/questdb/questdb.git</url>
<connection>scm:git:https://github.com/questdb/questdb.git</connection>
<tag>9.4.3</tag>
</scm>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>${project.basedir}/..</directory>
<targetPath>META-INF</targetPath>
<includes>
<include>LICENSE.txt</include>
<include>THIRD_PARTY_LICENSES.txt</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<compilerArgs>
<arg>-J-XX:-TieredCompilation</arg>
<arg>-J-XX:TieredStopAtLevel=1</arg>
</compilerArgs>
<fork>true</fork>
<source>${javac.compile.source}</source>
<target>${javac.compile.target}</target>
<testExcludes>
<exclude>${excludePattern1}</exclude>
</testExcludes>
<excludes>
<exclude>${excludeTestPattern1}</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<mainClass>io.questdb.ServerMain</mainClass>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<Build-Commit-Hash>${buildNumber}</Build-Commit-Hash>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M3</version>
<executions>
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>3.0.0</version>
</requireMavenVersion>
<requireJavaVersion>
<version>${java.enforce.version}</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- remove web console package on "clean" -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<filesets>
<fileset>
<directory>src/main/resources/io/questdb/site/</directory>
<includes>
<include>public.zip</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
<!-- disable stock deploy plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.3</version>
<configuration>
<forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory" />
<useModulePath>true</useModulePath>
<includes>
<include>${test.include}</include>
</includes>
<excludes>
<exclude>${test.exclude}</exclude>
</excludes>
<properties>
<property>
<name>listener</name>
<value>io.questdb.test.TestListener</value>
</property>
</properties>
<environmentVariables>
<!-- needed for testing Sender.fromEnv() -->
<QDB_CLIENT_CONF>
tcp::addr=localhost:9002;user=testUser1;token=UvuVb1USHGRRT08gEnwN2zGZrvM4MsLQ5brgF6SVkAw=;
</QDB_CLIENT_CONF>
<!-- Used by cargo when running a test with code coverage -->
<LLVM_PROFILE_FILE>questdbr-junit.profraw</LLVM_PROFILE_FILE>
</environmentVariables>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>local-client</id>
<properties>
<questdb.client.version>1.3.4</questdb.client.version>
</properties>
</profile>
<profile>
<id>javadoc</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<doclint>all,-missing</doclint>
<sourceFileExcludes>
<sourceFileExclude>${excludePattern1}</sourceFileExclude>
</sourceFileExcludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>maven-central-release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<doclint>all,-missing</doclint>
<sourceFileExcludes>
<sourceFileExclude>${excludePattern1}</sourceFileExclude>
</sourceFileExcludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.7</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>gpg</executable>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.8.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>published</waitUntil>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>build-web-console</id>
<build>
<plugins>
<!-- download Web Console artefact -->
<plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<version>1.6.8</version>
<executions>
<execution>
<!-- the wget goal actually binds itself to this phase by default -->
<phase>initialize</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<url>
https://registry.npmjs.org/@questdb/web-console/-/web-console-${web.console.version}.tgz
</url>
<outputFileName>web-console.tgz</outputFileName>
<outputDirectory>${project.build.directory}/site/</outputDirectory>
<unpack>true</unpack>
<skipCache>true</skipCache>
</configuration>
</execution>
</executions>
</plugin>
<!-- Repackage Web Console as public.zip -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>package-web-console</id>
<phase>initialize</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/web-console.xml</descriptor>
</descriptors>
<finalName>public</finalName>
<appendAssemblyId>false</appendAssemblyId>
<outputDirectory>src/main/resources/io/questdb/site</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>build-binaries</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<longModulepath>false</longModulepath>
</configuration>
<executions>
<execution>
<id>npm-install</id>
<phase>generate-sources</phase>
</execution>
<execution>
<id>npm-run-build</id>
<phase>generate-sources</phase>
</execution>
<execution>
<id>jlink</id>
<goals>
<goal>exec</goal>
</goals>
<phase>package</phase>
<configuration>
<executable>${java.home}/bin/jlink</executable>
<arguments>
<argument>--module-path</argument>
<argument>${project.build.directory}/questdb-${project.version}.jar</argument>
<argument>--add-modules</argument>
<argument>io.questdb,jdk.crypto.ec,java.management</argument>
<argument>--output</argument>
<argument>${project.build.directory}/runtime</argument>
<argument>--no-header-files</argument>
<argument>--no-man-pages</argument>
<argument>--compress=2</argument>
<argument>--vm=server</argument>
</arguments>
<workingDirectory>../core</workingDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<tarLongFileMode>posix</tarLongFileMode>
</configuration>
<executions>
<execution>
<id>create-binary</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/no-jre.xml</descriptor>
</descriptors>
<finalName>questdb</finalName>
</configuration>
</execution>
<execution>
<id>create-runtime</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${runtime.assembly}</descriptor>
</descriptors>
<finalName>questdb</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>build-rust-library</id>
<build>
<plugins>
<!--
The plugin is used in the development environments, that require Rust
code changes. The binary need not be placed in the platform-specific directory
as it is expected to be NOT PRESENT in all other environments. E.g. those
that do not target Rust library changes.
The runtime libquestdbr library will be picked up from the source control. It will
be deposited to the source control via CI job.
-->
<plugin>
<groupId>org.questdb</groupId>
<artifactId>rust-maven-plugin</artifactId>
<version>1.2.0</version>
<executions>
<execution>
<id>qdbr-build</id>
<goals>
<goal>build</goal>
</goals>
<configuration>
<path>${qdbr.path}</path>
<release>${qdbr.release}</release>
<copyTo>${project.build.directory}/classes/io/questdb/rust</copyTo>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>platform-windows-x86-64</id>
<activation>
<os>
<family>windows</family>
</os>
</activation>
<properties>
<archive.name>${project.version}-rt-windows-x86-64</archive.name>
<runtime.name>questdb-${project.version}-rt-windows-x86-64</runtime.name>
<runtime.assembly>src/main/assembly/rt-win.xml</runtime.assembly>
</properties>
</profile>
<profile>
<id>platform-linux-x86-64</id>
<activation>
<os>
<family>unix</family>
<arch>amd64</arch>
</os>
</activation>
<properties>
<archive.name>${project.version}-rt-linux-x86-64</archive.name>
<runtime.name>questdb-${project.version}-rt-linux-x86-64</runtime.name>
<runtime.assembly>src/main/assembly/rt-unix.xml</runtime.assembly>
<platform.dir.name>linux-x86-64</platform.dir.name>
<jemalloc.so>libjemalloc.so</jemalloc.so>
</properties>
</profile>
<profile>
<id>platform-freebsd-x86-64</id>
<activation>
<os>
<family>FreeBSD</family>
<arch>amd64</arch>
</os>
</activation>
<properties>
<archive.name>${project.version}-rt-freebsd-x86-64</archive.name>
<runtime.name>questdb-${project.version}-rt-freebsd-x86-64</runtime.name>
<runtime.assembly>src/main/assembly/rt-freebsd.xml</runtime.assembly>
</properties>
</profile>
<profile>
<id>platform-linux-aarch64</id>
<activation>
<os>
<family>unix</family>
<arch>aarch64</arch>
</os>
</activation>
<properties>
<archive.name>${project.version}-rt-linux-aarch64</archive.name>
<runtime.name>questdb-${project.version}-rt-linux-aarch64</runtime.name>
<runtime.assembly>src/main/assembly/rt-unix.xml</runtime.assembly>
<platform.dir.name>linux-aarch64</platform.dir.name>
<jemalloc.so>libjemalloc.so</jemalloc.so>
</properties>
</profile>
<profile>
<id>platform-osx-x86-64</id>
<activation>
<os>
<family>Mac</family>
<arch>amd64</arch>
</os>
</activation>
<properties>
<archive.name>${project.version}-rt-osx-x86-64</archive.name>
<runtime.name>questdb-${project.version}-rt-osx-x86-64</runtime.name>
<runtime.assembly>src/main/assembly/rt-unix.xml</runtime.assembly>
<platform.dir.name>darwin-x86-64</platform.dir.name>
</properties>
</profile>
<profile>
<id>platform-osx-aarch64</id>
<activation>
<os>
<family>Mac</family>
<arch>aarch64</arch>
</os>
</activation>
<properties>
<archive.name>${project.version}-rt-osx-aarch64</archive.name>
<runtime.name>questdb-${project.version}-rt-osx-aarch64</runtime.name>
<runtime.assembly>src/main/assembly/rt-unix.xml</runtime.assembly>
<platform.dir.name>darwin-aarch64</platform.dir.name>
</properties>
</profile>
<profile>
<id>jacoco</id>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.14</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>java25+</id>
<properties>
<jdk.version>25</jdk.version>
<java.enforce.version>25</java.enforce.version>
<questdb.artifactid>questdb</questdb.artifactid>
<excludePattern1>nothing-to-exclude-dummy-value-include-all-java11plus</excludePattern1>
<excludeTestPattern1>nothing-to-exclude-dummy-value-include-all-java11plus</excludeTestPattern1>
<javac.compile.source>${javac.target}</javac.compile.source>
<javac.compile.target>${javac.target}</javac.compile.target>
</properties>
<activation>
<jdk>(24,)</jdk>
</activation>
<dependencies>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>17.0.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>qdbr-release</id>
<properties>
<qdbr.release>true</qdbr.release>
</properties>
</profile>
<profile>
<id>qdbr-coverage</id>
<properties>
<qdr.release>false</qdr.release>
<qdbr.rustflags>-D warnings -C instrument-coverage</qdbr.rustflags>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.questdb</groupId>
<artifactId>rust-maven-plugin</artifactId>
<version>1.2.0</version>
<executions>
<execution>
<id>qdbr-build</id>
<goals>
<goal>build</goal>
</goals>
<configuration>
<path>rust/qdbr</path>
<release>${qdbr.release}</release>
<copyTo>${project.build.directory}/classes/io/questdb/bin</copyTo>
<copyWithPlatformDir>true</copyWithPlatformDir>
<environmentVariables>
<RUSTFLAGS>${qdbr.rustflags}</RUSTFLAGS>
</environmentVariables>
</configuration>
</execution>
<execution>
<id>qdbr-test</id>
<goals>
<goal>test</goal>
</goals>
<phase>none</phase>
<configuration>
<path>rust/qdbr</path>
<release>${qdbr.release}</release>
<environmentVariables>
<RUSTFLAGS>${qdbr.rustflags}</RUSTFLAGS>
<LLVM_PROFILE_FILE>questdbr-cargo-test.profraw</LLVM_PROFILE_FILE>
</environmentVariables>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<dependencies>
<!-- test dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.questdb</groupId>
<artifactId>questdb-client</artifactId>
<version>${questdb.client.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>