java-client
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>java-client</artifactId>
<version>3.7.7</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>
<parent>
<groupId>com.couchbase.client</groupId>
<artifactId>couchbase-jvm-clients</artifactId>
<version>1.16.7</version><!--REL-->
</parent>
<artifactId>java-client</artifactId>
<version>3.7.7</version><!--REL-->
<!-- Does not need packaging bundle as the felix plugin does this <packaging>bundle</packaging> -->
<name>Couchbase Java SDK</name>
<description>The official Couchbase Java SDK</description>
<dependencies>
<!-- External, Required Dependencies -->
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>core-io</artifactId>
<version>${core-io.version}</version>
</dependency>
<!-- External, Optional Dependencies -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
<optional>true</optional>
</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.projectreactor</groupId>
<artifactId>reactor-test</artifactId>
<version>${reactor.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<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.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>
<source>8</source>
<doclint>none</doclint>
<quiet>true</quiet>
</configuration>
</execution>
</executions>
<configuration>
<source>8</source>
<links>
<link>https://projectreactor.io/docs/core/release/api/</link>
<link>https://docs.couchbase.com/sdk-api/couchbase-core-io/</link>
</links>
<tags>
<tag>
<name>implNote</name>
<placement>a</placement>
<head>Implementation Note:</head>
</tag>
</tags>
</configuration>
</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.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<!-- Attributes like `Automatic-Module-Name` and `Implementation-Version` that would normally be set here
are instead set by `maven-bundle-plugin`. See the comment in that plugin config for details. -->
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<!-- Fetch core-io sources and javadoc for inclusion in the release-archive assembly -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>get-dependency-sources</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeArtifactIds>core-io</includeArtifactIds>
<outputDirectory>${project.build.directory}/dependency-attachments</outputDirectory>
<classifier>sources</classifier>
</configuration>
</execution>
<execution>
<id>get-dependency-javadoc</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeArtifactIds>core-io</includeArtifactIds>
<outputDirectory>${project.build.directory}/dependency-attachments</outputDirectory>
<classifier>javadoc</classifier>
</configuration>
</execution>
</executions>
</plugin>
<!-- Build the release-archive assembly. Must be defined *after* maven-dependency-plugin,
since the assembly uses files fetched by that plugin. -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<descriptors>
<descriptor>src/assembly/release-archive.xml</descriptor>
</descriptors>
<finalName>Couchbase-Java-Client-${project.version}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<attach>false</attach>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>5.1.2</version>
<extensions>true</extensions>
<configuration>
<instructions>
<!-- The `maven-bundle-plugin` interferes with property placeholder resolution in `maven-jar-plugin`.
Specifically, using ${buildNumber} with `maven-jar-plugin` doesn't work when the bundle plugin is present.
See https://stackoverflow.com/questions/12604161/error-while-adding-svn-revision-in-jar-manifest-with-maven-and-maven-bundle-plug
As a workaround, declare the manifest attributes here instead, even though they are not related to bundles. -->
<Implementation-Version>${project.version}+${buildNumber}</Implementation-Version>
<Build-Time>${maven.build.timestamp}</Build-Time>
<Automatic-Module-Name>com.couchbase.client.java</Automatic-Module-Name>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Export-Package>
com.couchbase.client.java.*,
</Export-Package>
<Import-Package>
javax.naming,
javax.security.cert,
javax.security.sasl,
javax.security.auth.*,
javax.crypto,
javax.crypto.spec,
reactor.core,
reactor.core.*,
reactor.util.*,
org.reactivestreams.*,
org.slf4j,
org.slf4j.*,
com.couchbase.client.core.*,
</Import-Package>
<_exportcontents>*</_exportcontents>
</instructions>
</configuration>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
</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/java</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/java</test-source-directory>
<test-resource-directory>src/test/resources</test-resource-directory>
</properties>
</profile>
</profiles>
</project>