couchbase-jvm-clients
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>couchbase-jvm-clients</artifactId>
<version>1.17.3</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.couchbase.client</groupId>
<artifactId>couchbase-jvm-clients</artifactId>
<version>1.17.3</version><!--REL-->
<packaging>pom</packaging>
<name>Couchbase JVM Client Parent</name>
<description>Parent POM for Couchbase JVM projects</description>
<properties>
<maven.compiler.release>8</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<osgi-feature.version>3.8.3</osgi-feature.version><!--REL-->
<java-examples.version>1.8.3</java-examples.version><!--REL-->
<java-client.version>3.8.3</java-client.version><!--REL-->
<core-io.version>3.8.3</core-io.version><!--REL-->
<core-io-deps.version>1.8.3</core-io-deps.version><!--REL-->
<scala-client.version>1.8.3</scala-client.version><!--REL-->
<kotlin-client.version>1.5.3</kotlin-client.version><!--REL-->
<columnar-java-client.version>1.1.3</columnar-java-client.version><!--REL-->
<tracing-opentelemetry.version>1.6.3</tracing-opentelemetry.version><!--REL-->
<metrics-opentelemetry.version>0.8.3</metrics-opentelemetry.version><!--REL-->
<test-utils.version>1.8.3</test-utils.version><!--REL-->
<junit.version>5.11.2</junit.version>
<assertj.version>3.23.1</assertj.version>
<log4j-slf4j-impl.version>2.20.0</log4j-slf4j-impl.version>
<jackson.version>2.17.3</jackson.version>
<reactor.version>3.6.9</reactor.version>
<reactive-streams.version>1.0.4</reactive-streams.version>
<blockhound.version>1.0.10.RELEASE</blockhound.version>
<micrometer.version>1.12.9</micrometer.version>
<slf4j.version>1.7.36</slf4j.version>
<karaf.version>4.4.3</karaf.version>
<!-- Logback 1.3 still supports Java 8 (1.4 doesn't), but requires a jump to SLF4J 2.X -->
<logback.version>1.2.11</logback.version>
<gson.version>2.9.1</gson.version>
<!-- This project has been sunset and 0.8.0 is the final version -->
<scala.reactor-core-extensions.version>0.8.0</scala.reactor-core-extensions.version>
<scala.circe.version>0.14.10</scala.circe.version>
<!-- Next version 2.10.0 dropped support for Java 8 -->
<scala.play-json.version>2.9.4</scala.play-json.version>
<!-- "The v2.13.5.2 release is the last version that supports JDK 8+" -->
<scala.jsoniter-scala.version>2.13.5.2</scala.jsoniter-scala.version>
<scala.jsoniter.version>0.9.23</scala.jsoniter.version>
<!-- json4s has long since moved to 4.x, but this would be a breaking change for us. 3.6.12 was the last stable (non-M) 3.x release -->
<scala.json4s.version>3.6.12</scala.json4s.version>
<scala.jawn.version>1.6.0</scala.jawn.version>
<!-- 3.3.1 is the final version of the 3.x family, with 4.0 introducing breaking changes -->
<scala.upickle.version>3.3.1</scala.upickle.version>
<scala.collection-compat.version>2.12.0</scala.collection-compat.version>
<scala.compat.version>2.12</scala.compat.version>
<scala.compat.library.version>2.12.20</scala.compat.library.version>
<scala.version-specific.src>src/main/scala-2.13-</scala.version-specific.src>
<maven-shade-plugin.version>3.2.4</maven-shade-plugin.version>
<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
<maven-javadoc-plugin.version>3.4.1</maven-javadoc-plugin.version>
<build-helper-maven-plugin.version>3.2.0</build-helper-maven-plugin.version>
<flatten-maven-plugin.version>1.2.7</flatten-maven-plugin.version>
<scala-maven-plugin.version>4.8.1</scala-maven-plugin.version>
<mvn-scalafmt.version>1.1.1684076452.9f83818</mvn-scalafmt.version>
<!-- When changing this, make sure to update these versions:
tracing-opentelemetry-deps/pom.xml opentelemetry-grpc-1.6
tracing-opentelemetry/pom.xml opentelemetry-instrumentation-api-semconv
Those require alpha releases, and due to limitations with older Maven versions, they cannot
use "${opentelemetry.version}-alpha" -->
<opentelemetry.version>1.31.0</opentelemetry.version>
<!-- Required to stop the exec-maven-plugin complaining -->
<exec.mainClass>none</exec.mainClass>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>core-io</artifactId>
<version>${core-io.version}</version>
</dependency>
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>java-client</artifactId>
<version>${java-client.version}</version>
</dependency>
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>scala-implicits_2.12</artifactId>
<version>${scala-client.version}</version>
</dependency>
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>scala-client_2.12</artifactId>
<version>${scala-client.version}</version>
</dependency>
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>scala-implicits_2.13</artifactId>
<version>${scala-client.version}</version>
</dependency>
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>scala-client_2.13</artifactId>
<version>${scala-client.version}</version>
</dependency>
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>kotlin-client</artifactId>
<version>${kotlin-client.version}</version>
</dependency>
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>couchbase-columnar-java-client</artifactId>
<version>${columnar-java-client.version}</version>
</dependency>
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>test-utils</artifactId>
<version>${test-utils.version}</version>
</dependency>
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>tracing-opentelemetry</artifactId>
<version>${tracing-opentelemetry.version}</version>
</dependency>
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>metrics-opentelemetry</artifactId>
<version>${metrics-opentelemetry.version}</version>
</dependency>
<dependency>
<groupId>io.projectreactor.tools</groupId>
<artifactId>blockhound</artifactId>
<version>${blockhound.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<url>https://couchbase.com</url>
<organization>
<name>Couchbase, Inc.</name>
<url>https://couchbase.com</url>
</organization>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<id>daschl</id>
<name>Michael Nitschinger</name>
<email>michael.nitschinger@couchbase.com</email>
</developer>
<developer>
<id>programmatix</id>
<name>Graham Pople</name>
<email>graham.pople@couchbase.com</email>
</developer>
<developer>
<id>dnault</id>
<name>David Nault</name>
<email>david.nault@couchbase.com</email>
</developer>
<developer>
<id>avsej</id>
<name>Sergey Avseyev</name>
<email>sergey@couchbase.com</email>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/couchbase/couchbase-jvm-clients</connection>
<developerConnection>scm:git:git://github.com/couchbase/couchbase-jvm-clients</developerConnection>
<url>https://github.com/couchbase/couchbase-jvm-clients</url>
</scm>
<modules>
<module>java-client</module>
<module>osgi-feature</module>
<module>java-examples</module>
<module>core-io</module>
<module>scala-implicits</module>
<module>scala-client</module>
<module>kotlin-client</module>
<module>test-utils</module>
<module>tracing-micrometer-observation</module>
<module>tracing-opentracing</module>
<module>tracing-opentelemetry</module>
<module>metrics-opentelemetry</module>
<module>metrics-micrometer</module>
<module>columnar-java-client</module>
<!-- Uncomment next lines to include the FIT performers. They are not included by default as they require
a) an externally built lib and b) JDK 17 -->
<!-- <module>core-fit-performer</module>-->
<!-- <module>java-fit-performer</module>-->
<!-- <module>kotlin-fit-performer</module>-->
<!-- <module>scala-fit-performer</module>-->
<!-- <module>columnar-fit-performer-shared</module>-->
<!-- <module>columnar-java-fit-performer</module>-->
</modules>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.7.0</version>
<extensions>true</extensions>
<configuration>
<autoPublish>true</autoPublish>
<waitUntil>published</waitUntil>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.5.0</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- By default, exclude submodules from publication. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.1.4</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<!-- Publish parent (for now) but not all submodules.
A submodule opts in to publication by including
`central-publishing-maven-plugin` in its `plugins` section.
See https://stackoverflow.com/a/78782937/611819 -->
<inherited>false</inherited>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<getRevisionOnlyOnce>true</getRevisionOnlyOnce>
<shortRevisionLength>8</shortRevisionLength>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<trimStackTrace>false</trimStackTrace>
<includes>
<include>**/*.scala</include>
<include>**/*Spec.class</include>
<include>**/*Test.java</include>
</includes>
<excludedGroups>flaky</excludedGroups>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.2</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<!-- Last version to support Java 8 is 9.x -->
<version>9.3</version>
</dependency>
</dependencies>
<configuration>
<headerLocation>config/checkstyle/checkstyle-header.txt</headerLocation>
<configLocation>config/checkstyle/checkstyle-basic.xml</configLocation>
<suppressionsLocation>config/checkstyle/checkstyle-suppressions.xml</suppressionsLocation>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<linkXRef>false</linkXRef>
</configuration>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Want java-fit-performer to be executable. Maven complains if use exec:java target as the dependencies of
module aren't executable. The workaround appears to be this - disable execution by default. -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<skip>true</skip>
<executable>java</executable>
</configuration>
</plugin>
<!-- Require profile `snapshot` or `release` when deploying.
Having explicit profiles (instead of relying on deploy plugin's
automatic snapshot/release routing) prevents the "on push"
snapshot publish action from accidentally publishing a release version. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-deploy-has-active-profile</id>
<phase>deploy</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProfileIdsExist/>
<requireActiveProfile>
<profiles>snapshot,release</profiles>
<all>false</all>
</requireActiveProfile>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<profile>
<id>scala-2.13</id>
<properties>
<scala.compat.version>2.13</scala.compat.version>
<scala.compat.library.version>2.13.15</scala.compat.library.version>
<scala.version-specific.src>src/main/scala-2.13+</scala.version-specific.src>
</properties>
</profile>
<profile>
<id>release</id>
<build>
<plugins>
<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>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-release</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireReleaseVersion>
<message>Not a release version (remove -SNAPSHOT suffix!)</message>
</requireReleaseVersion>
<requireReleaseDeps>
<message>Can't release with snapshot dependencies!</message>
</requireReleaseDeps>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>snapshot</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-snapshot</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireSnapshotVersion>
<message>Not a SNAPSHOT version!</message>
</requireSnapshotVersion>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<!-- version changing -->
<!--
Remove -SNAPSHOT
find . -iname "pom.xml" -exec sed -ie 's/\(-SNAPSHOT\)\(<\/.*><\!\-\-REL\-\->\)/\2/' {} \;
Insert -SNAPSHOT, afterwards, manually change the versions preceding -SNAPSHOT
find . -iname "pom.xml" -exec sed -ie 's/\(<\/[^>]*><\!\-\-REL\-\->\)/\-SNAPSHOT\1/' {} \;
- or -
Change version from 3 to 4 and insert -SNAPSHOT. The last 2 references the second search pattern group.
find . -iname "pom.xml" -exec sed -ie 's/\(3\)\(<\/[^>]*><\!\-\-REL\-\->\)/4\-SNAPSHOT\2/' {} \;
# check with
git diff | grep '^+ ' | grep -v '\.4-SNAPSHOT'
-->
</project>