monetdbe-java
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>monetdb</groupId>
<artifactId>monetdbe-java</artifactId>
<version>1.10</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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>monetdb</groupId>
<artifactId>monetdbe-java</artifactId>
<!--<version>1.10</version>-->
<version>1.10</version>
<name>${project.groupId}:${project.artifactId}</name>
<description>MonetDB Embedded JDBC driver</description>
<url>https://www.monetdb.org</url>
<packaging>jar</packaging>
<developers>
<developer>
<id>bernardo</id>
<name>Bernardo Mota</name>
<email>bernardo.mota@monetdbsolutions.com</email>
<organization>MonetDB</organization>
<organizationUrl>https://www.monetdb.org</organizationUrl>
</developer>
</developers>
<licenses>
<license>
<name>Mozilla Public License, Version 2.0</name>
<url>https://www.mozilla.org/MPL/2.0/</url>
</license>
</licenses>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<repository.user>MonetDBSolutions</repository.user>
<repository.name>MonetDBe-Java</repository.name>
<!-- Tests are skipped by default on dev builds -->
<skipTests>true</skipTests>
</properties>
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
</repository>
</distributionManagement>
<scm>
<connection>scm:git:git@github.com:MonetDBSolutions/MonetDBe-Java.git</connection>
<developerConnection>scm:git:git@github.com:MonetDBSolutions/MonetDBe-Java.git</developerConnection>
<url>https://github.com/MonetDBSolutions/MonetDBe-Java</url>
<tag>monetdbe-java</tag>
</scm>
<issueManagement>
<url>https://www.github.com/${repository.user}/${repository.name}/issues</url>
<system>Github Issues</system>
</issueManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
</dependencies>
<profiles>
<!-- DEV BUILDS -->
<!-- Linux developer compilation: only copy pre-compiled native monetdbe-java library
(default behaviour for Linux) -->
<profile>
<id>linux</id>
<activation>
<os>
<family>unix</family>
<name>Linux</name>
</os>
</activation>
<properties>
<os.name.clean>linux</os.name.clean>
<os.library.type>so</os.library.type>
</properties>
</profile>
<!-- Mac developer compilation: only copy pre-compiled native monetdbe-java library
(default behaviour for Mac) -->
<profile>
<id>mac</id>
<activation>
<os>
<family>mac</family>
</os>
</activation>
<properties>
<os.name.clean>mac</os.name.clean>
<os.library.type>dylib</os.library.type>
</properties>
</profile>
<!-- Windows build: copy transitive and direct dependencies and pre-compiled native monetdbe-java library
(default behaviour; must set the -DMonetDB_dir and -DVCPKG_ROOT properties, tests are turned on) -->
<profile>
<id>windows</id>
<activation>
<os>
<family>windows</family>
</os>
</activation>
<properties>
<os.name.clean>windows</os.name.clean>
<os.library.type>dll</os.library.type>
<jar.classifier>windows</jar.classifier>
<!-- Do not skip tests, as this is the Windows release profile -->
<skipTests>false</skipTests>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<!-- Copy libmonetdbe direct dependencies to lib folder -->
<execution>
<id>copy-direct-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}\lib\windows\direct</outputDirectory>
<resources>
<resource>
<directory>${MonetDB_dir}\bin\</directory>
<includes>
<include>stream.dll</include>
<include>bat.dll</include>
<include>mapi.dll</include>
<include>monetdb5.dll</include>
<include>monetdbsql.dll</include>
<include>monetdbe.dll</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
<!-- Copy libmonetdbe transitive dependencies to lib folder -->
<execution>
<id>copy-transitive-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}\lib\windows\transitive</outputDirectory>
<resources>
<resource>
<directory>${VCPKG_ROOT}\installed\x64-windows\bin\</directory>
<includes>
<include>libcrypto-1_1-x64.dll</include>
<include>iconv-2.dll</include>
<include>libxml2.dll</include>
<include>pcre.dll</include>
<include>zlib1.dll</include>
<include>lzma.dll</include>
<include>bz2.dll</include>
<include>libcurl.dll</include>
<!-- Debug libraries -->
<include>pcred.dll</include>
<include>zlibd1.dll</include>
<include>lzmad.dll</include>
<include>bz2d.dll</include>
<include>libcurl-d.dll</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Enforce that MonetDB_dir and VCPKG_ROOT is set -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-property</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>MonetDB_dir</property>
<message>You must set the MonetDB_dir property, pointing to the MonetDB base directory (not the lib/lib64 directory)</message>
</requireProperty>
<requireProperty>
<property>VCPKG_ROOT</property>
<message>You must set the VCPKG_ROOT property, pointing to the base directory of your vcpkg installation (VCPKG_ROOT\installed\x64-windows\bin\ should have the necessary dependencies)</message>
</requireProperty>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- SLIM JAR BUILDS -->
<!-- Linux build: copy direct dependencies and pre-compiled native monetdbe-java library
(has to be enabled with -P linux-slim; must set the -DCOLLECT_LIBS property, tests are turned on) -->
<profile>
<id>linux-slim</id>
<properties>
<jar.classifier>linux-slim</jar.classifier>
<!-- Do not skip tests, as this is a release profile -->
<skipTests>false</skipTests>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<!-- Copy libmonetdbe direct dependencies to lib folder -->
<execution>
<id>copy-direct-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/lib/linux/direct/</outputDirectory>
<resources>
<resource>
<!--<directory>${MonetDB_dir}/lib/</directory>-->
<directory>${COLLECT_LIBS}</directory>
<includes>
<include>libstream.so.*</include>
<include>libbat.so.*</include>
<include>libmapi.so.*</include>
<include>libmonetdb5.so.*</include>
<include>libmonetdbsql.so.*</include>
<include>libmonetdbe.so.*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Enforce that COLLECT_LIBS is set -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-property</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>COLLECT_LIBS</property>
<message>You must set the COLLECT_LIBS property, pointing to the directory where the dependency libraries are.</message>
</requireProperty>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Mac build: copy direct dependencies and pre-compiled native monetdbe-java library
(has to be enabled with -P mac-slim; must set the -DCOLLECT_LIBS property, tests are turned on) -->
<profile>
<id>mac-slim</id>
<properties>
<jar.classifier>mac-slim</jar.classifier>
<!-- Do not skip tests, as this is a release profile -->
<skipTests>false</skipTests>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<!-- Copy libmonetdbe direct dependencies to lib folder -->
<execution>
<id>copy-direct-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/lib/mac/direct/</outputDirectory>
<resources>
<resource>
<!--<directory>${MonetDB_dir}/lib/</directory>-->
<directory>${COLLECT_LIBS}</directory>
<includes>
<include>libstream.*.dylib</include>
<include>libbat.*.dylib</include>
<include>libmapi.*.dylib</include>
<include>libmonetdb5.*.dylib</include>
<include>libmonetdbsql.*.dylib</include>
<include>libmonetdbe.*.dylib</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Enforce that COLLECT_LIBS is set -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-property</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>COLLECT_LIBS</property>
<message>You must set the COLLECT_LIBS property, pointing to the directory where the dependency libraries are.</message>
</requireProperty>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- FATJAR BUILDS -->
<!-- Linux fatjar build: copy direct + transitive dependencies
(has to be enabled with -P linux-slim,linux-fat; must set the -DCOLLECT_LIBS property, tests are turned on)-->
<profile>
<id>linux-fat</id>
<properties>
<jar.classifier>linux-fat</jar.classifier>
<!-- Do not skip tests, as this is a release profile -->
<skipTests>false</skipTests>
</properties>
<build>
<plugins>
<!-- Copy Linux transitive dependencies to lib folder -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>copy-transitive-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/lib/linux/transitive</outputDirectory>
<resources>
<resource>
<directory>${COLLECT_LIBS}</directory>
<includes>
<include>libz.so.*</include>
<include>libpcre.so.*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Enforce that linux-slim profile was set -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-property</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireActiveProfile>
<profiles>linux-slim</profiles>
</requireActiveProfile>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Mac fatjar build: copy direct + transitive dependencies
(has to be enabled with -P mac-slim,mac-fat; must set the -DCOLLECT_LIBS property, tests are turned on)-->
<profile>
<id>mac-fat</id>
<properties>
<jar.classifier>mac-fat</jar.classifier>
<!-- Do not skip tests, as this is a release profile -->
<skipTests>false</skipTests>
</properties>
<build>
<plugins>
<!-- Copy Mac transitive dependencies to lib folder -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>copy-transitive-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/lib/mac/transitive</outputDirectory>
<resources>
<resource>
<directory>${COLLECT_LIBS}</directory>
<includes>
<include>libz.*.dylib</include>
<include>libpcre.*.dylib</include>
<include>libcrypto.*.dylib</include>
<include>libbz2.*.dylib</include>
<include>libcurl.*.dylib</include>
<include>liblzma.*.dylib</include>
<include>liblz4.*.dylib</include>
<include>libiconv.*.dylib</include>
<include>libxml2.*.dylib</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Enforce that mac-slim profile was set -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-property</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireActiveProfile>
<profiles>mac-slim</profiles>
</requireActiveProfile>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Cross fatjar build: copy all pre-compiled libraries/dependencies for Linux, Mac and Windows
(has to be enabled with -P cross; must set the -DCOLLECT_LIBS property
and the directory should contain directories for all three OS,
with the correct structure -> lib/$OS/libmonetdbe-java.dylib, lib/$OS/direct/, lib/$OS/transitive)-->
<profile>
<id>cross</id>
<properties>
<!--<jar.classifier>cross</jar.classifier>-->
<!-- Do not skip tests, as this is a release profile -->
<skipTests>false</skipTests>
</properties>
<build>
<plugins>
<!-- Copy all dependencies to lib folder -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>copy-everything</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/lib/</outputDirectory>
<resources>
<resource>
<directory>${COLLECT_LIBS}</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Enforce that COLLECT_LIBS is set -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-property</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>COLLECT_LIBS</property>
<message>You must set the COLLECT_LIBS property, pointing to the directory where the all pre-compiled libraries for Linux, Mac and Windows are.</message>
</requireProperty>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Manual linux release-->
<profile>
<id>linux-manual</id>
<properties>
<jar.classifier>linux-slim</jar.classifier>
<!-- Do not skip tests, as this is a release profile -->
<skipTests>false</skipTests>
</properties>
<build>
<plugins>
<!-- Copy all dependencies to lib folder -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>copy-everything</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/lib/</outputDirectory>
<resources>
<resource>
<directory>${COLLECT_LIBS}</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Enforce that COLLECT_LIBS is set -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-property</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>COLLECT_LIBS</property>
<message>You must set the COLLECT_LIBS property, pointing to the directory where the all pre-compiled libraries for Linux, Mac and Windows are.</message>
</requireProperty>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- RELEASE PROFILES -->
<!-- Release profile
(has to be enabled with -P release / -P release,mac-slim / -P release,mac-slim,mac-fat)-->
<profile>
<id>release</id>
<build>
<plugins>
<!-- Deployment plugins -->
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.7</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org</nexusUrl>
<autoReleaseAfterClose>false</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release</releaseProfiles>
<goals>deploy</goals>
</configuration>
</plugin>
<!-- Jar with source files -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>compile</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
<configuration>
<classifier>sources</classifier>
</configuration>
</execution>
</executions>
</plugin>
<!-- Jar with documentation -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>javadoc</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>sign-gpg</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
<passphrase>${gpg.passphrase}</passphrase>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!--<profile>
<id>sign-jarsigner</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>sign</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<keystore>/root/.m2/private.key</keystore>
<alias>bernardo</alias>
<storepass>${MVN_GPG_PASSPHRASE}</storepass>
<keypass>${MVN_GPG_PASSPHRASE}</keypass>
</configuration>
</plugin>
</plugins>
</build>
</profile>-->
</profiles>
<build>
<plugins>
<!-- For setting the classifier -->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<classifier>${jar.classifier}</classifier>
</configuration>
</plugin>
<!-- Copy JNI C library dependency to lib folder -->
<!--<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-native-lib</id>
<phase>compile</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>monetdb</groupId>
<artifactId>monetdbe-java-native</artifactId>
<version>1.10</version>
<type>${os.library.type}</type>
<overWrite>false</overWrite>
<outputDirectory>${project.build.outputDirectory}/lib/${os.name.clean}</outputDirectory>
<destFileName>libmonetdbe-java.${os.library.type}</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>-->
<!-- Copy java.sql.Driver resource file for JDBC (in META-INF/services/java.sql.Driver) -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>copy-driver</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/META-INF/</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/META-INF/</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- Testing -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<includes>
<include>AllTests.java</include>
<!--<include>Test_01_OpenAndCloseConnection</include>
<include>Test_02_CloseConnectionTwice</include>
<include>Test_03_AutoCommit</include>
<include>Test_04_SimpleInsertAndQueryStatements</include>
<include>Test_05_BasicInsertAndQueryStatements</include>
<include>Test_06_ComplexInsertAndQueryStatements</include>
<include>Test_07_SimplePreparedStatements</include>
<include>Test_08_ComplexPreparedStatements</include>
<include>Test_09_LoadAndQueryTaxi</include>
<include>Test_10_MetaData</include>
<include>Test_11_ConcurrentConnections</include>
<include>Test_12_BatchesAndJoinsMovies</include>
<include>Test_13_Schema</include>
<include>Test_15_Transactions</include>
<include>Test_16_MixedOrderStatements</include>
<include>Test_17_QueryInThread</include>-->
<!--<include>Test_14_MultipleResultSet</include>-->
</includes>
<skipTests>${skipTests}</skipTests>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
</project>