kotlin-client
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>kotlin-client</artifactId>
<version>1.3.1</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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.couchbase.client</groupId>
<artifactId>couchbase-jvm-clients</artifactId>
<version>1.15.1</version><!--REL-->
</parent>
<artifactId>kotlin-client</artifactId>
<version>1.3.1</version><!--REL-->
<name>Couchbase Kotlin SDK</name>
<description>The official Couchbase Kotlin SDK</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<kotlin.version>1.6.20</kotlin.version>
<kotlin.coroutines.version>1.6.0</kotlin.coroutines.version>
<kotlin.serialization.version>1.3.3</kotlin.serialization.version>
<kotlin.code.style>official</kotlin.code.style>
<dokka.version>1.6.10</dokka.version>
<moshi.version>1.13.0</moshi.version>
</properties>
<dependencies>
<!-- External, Required Dependencies -->
<!-- Kotlin -->
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-coroutines-jdk8</artifactId>
<version>${kotlin.coroutines.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-coroutines-reactive</artifactId>
<version>${kotlin.coroutines.version}</version>
</dependency>
<!-- Jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-kotlin</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- Optional, used by KotlinxSerializationJsonSerializer -->
<dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-serialization-json</artifactId>
<version>${kotlin.serialization.version}</version>
<optional>true</optional>
</dependency>
<!-- Optional, used by MoshiJsonSerializer -->
<dependency>
<groupId>com.squareup.moshi</groupId>
<artifactId>moshi-kotlin</artifactId>
<version>${moshi.version}</version>
<optional>true</optional>
</dependency>
<!-- Couchbase -->
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>core-io</artifactId>
</dependency>
<!-- Test Dependencies -->
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>test-utils</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j-slf4j-impl.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.github.microutils</groupId>
<artifactId>kotlin-logging-jvm</artifactId>
<version>2.1.21</version>
<scope>test</scope>
<exclusions>
<!-- prevent stdlib version mismatch -->
<exclusion>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-common</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<configuration>
<jvmTarget>1.8</jvmTarget>
<args>
<!-- Require explicit visibility modifiers so we don't
accidentally leak stuff into the public API -->
<arg>-Xexplicit-api=strict</arg>
</args>
<!-- For KotlinxSerializationJsonSerializer tests -->
<compilerPlugins>
<plugin>kotlinx-serialization</plugin>
</compilerPlugins>
</configuration>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-serialization</artifactId>
<version>${kotlin.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>compile</id>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build-helper-maven-plugin.version}</version>
<executions>
<execution>
<id>add-integration-test-source-as-test-sources</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<!-- add the following sources in addition to the unit tests -->
<source>${test-source-directory}</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-integration-test-resource-as-test-resource</id>
<phase>generate-test-resources</phase>
<goals>
<goal>add-test-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${test-resource-directory}</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</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>
<getRevisionOnlyOnce>true</getRevisionOnlyOnce>
<shortRevisionLength>8</shortRevisionLength>
<attach>true</attach>
<addOutputDirectoryToResources>true</addOutputDirectoryToResources>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<show>private</show>
<source>8</source>
<doclint>none</doclint>
<quiet>true</quiet>
<stylesheetfile>${project.basedir}/../config/javadoc/style.css</stylesheetfile>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jetbrains.dokka</groupId>
<artifactId>dokka-maven-plugin</artifactId>
<version>${dokka.version}</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>dokka</goal>
</goals>
</execution>
</executions>
<configuration>
<sourceDirectories>
<dir>${project.basedir}/src/main/kotlin</dir>
</sourceDirectories>
<samples>
<dir>${project.basedir}/src/main/kotlin</dir>
</samples>
<externalDocumentationLinks>
<link>
<!-- Root URL of the generated documentation to link with. The trailing slash is required! -->
<url>https://docs.couchbase.com/sdk-api/couchbase-core-io/</url>
</link>
</externalDocumentationLinks>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifestEntries>
<Build-Time>${maven.build.timestamp}</Build-Time>
<Automatic-Module-Name>com.couchbase.client.kotlin</Automatic-Module-Name>
</manifestEntries>
<manifestSections>
<manifestSection>
<!-- the part after couchbase- needs to match with the agent title in the env -->
<name>couchbase-kotlin</name>
<manifestEntries>
<Impl-Version>${project.version}</Impl-Version>
<Impl-Git-Revision>${buildNumber}</Impl-Git-Revision>
</manifestEntries>
</manifestSection>
</manifestSections>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- by default, add also the int tests -->
<test-source-directory>src/integrationTest/kotlin</test-source-directory>
<test-resource-directory>src/integrationTest/resources</test-resource-directory>
</properties>
</profile>
<profile>
<id>unit</id>
<activation>
<property>
<name>unit</name>
<value>true</value>
</property>
</activation>
<properties>
<!-- just adding the unit tests again, noop. -->
<test-source-directory>src/test/kotlin</test-source-directory>
<test-resource-directory>src/test/resources</test-resource-directory>
</properties>
</profile>
</profiles>
</project>