<?xml version="1.0" encoding="UTF-8"?> <!-- ~ /* ****************************************************************************** ~ * ~ * ~ * This program and the accompanying materials are made available under the ~ * terms of the Apache License, Version 2.0 which is available at ~ * https://www.apache.org/licenses/LICENSE-2.0. ~ * ~ * See the NOTICE file distributed with this work for additional ~ * information regarding copyright ownership. ~ * 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. ~ * ~ * SPDX-License-Identifier: Apache-2.0 ~ ******************************************************************************/ --> <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>org.deeplearning4j</groupId> <artifactId>deeplearning4j</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <name>deeplearning4j</name> <description>Deeplearning4j Monorepo</description> <url>http://deeplearning4j.konduit.ai/</url> <licenses> <license> <name>Apache License, Version 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> <distribution>repo</distribution> </license> </licenses> <modules> <module>libnd4j</module> <module>nd4j</module> <module>datavec</module> <module>deeplearning4j</module> <module>python4j</module> <module>rl4j</module> </modules> <scm> <connection>scm:git://github.com:eclipse/deeplearning4j.git</connection> <developerConnection>scm:git:git@github.com:eclipse/deeplearning4j.git </developerConnection> <url>git@github.com:eclipse/deeplearning4j.git</url> <tag>HEAD</tag> </scm> <repositories> <repository> <id>sonatype-nexus-snapshots</id> <name>Sonatype Nexus Snapshots</name> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>daily</updatePolicy> <!-- Optional, update daily --> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>sonatype-nexus-snapshots</id> <name>Sonatype Nexus Snapshots</name> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>daily</updatePolicy> <!-- Optional, update daily --> </snapshots> </pluginRepository> </pluginRepositories> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.testTarget>1.8</maven.compiler.testTarget> <maven.compiler.testSource>1.8</maven.compiler.testSource> <encoding>UTF-8</encoding> <project.build.sourceEncoding>${encoding}</project.build.sourceEncoding> <project.reporting.outputEncoding>${encoding}</project.reporting.outputEncoding> <project.resources.sourceEncoding>${encoding}</project.resources.sourceEncoding> <archetype.encoding>${encoding}</archetype.encoding> <deeplearning4j.version>1.0.0-SNAPSHOT</deeplearning4j.version> <dl4j.version>1.0.0-SNAPSHOT</dl4j.version> <nd4j.version>1.0.0-SNAPSHOT</nd4j.version> <datavec.version>1.0.0-SNAPSHOT</datavec.version> <dl4j-test-resources.version>1.0.0-SNAPSHOT</dl4j-test-resources.version> <dl4j-test-resources.classifier></dl4j-test-resources.classifier> <rxjava.version>2.2.21</rxjava.version> <jackson-asl.version>1.9.13</jackson-asl.version> <asm.version>5.1</asm.version> <arrow.version>0.11.0</arrow.version> <avro.version>1.7.7</avro.version> <curator.version>2.8.0</curator.version> <guice.version>4.0</guice.version> <hibernate.version>5.1.3.Final</hibernate.version> <hppc.version>0.8.1</hppc.version> <httpclient.version>4.5.3</httpclient.version> <httpcore.version>4.4.6</httpcore.version> <httpmime.version>4.5.3</httpmime.version> <janino.version>2.7.8</janino.version> <javassist.version>3.19.0-GA</javassist.version> <jets3t.version>0.7.1</jets3t.version> <jetty.version>9.4.10.v20180503</jetty.version> <jersey.version>2.29</jersey.version> <jsch.version>0.1.51</jsch.version> <leveldb.version>1.8</leveldb.version> <lz4.version>1.3.0</lz4.version> <metrics.version>3.2.6</metrics.version> <netty.version>4.1.58.Final</netty.version> <objenesis.version>2.6</objenesis.version> <paranamer.version>2.6</paranamer.version> <ws.rs.version>2.0</ws.rs.version> <servlet.version>3.1.0</servlet.version> <snakeyaml.version>1.12</snakeyaml.version> <snappy.version>1.1.2.6</snappy.version> <!-- FIXME: Might need be synced with all modules that uses spring-core plugin (nd4j-cuda-11.0, nd4j-tests, nd4j-common-tests) --> <spring.version>5.1.1.RELEASE</spring.version> <t-digest.version>3.2</t-digest.version> <oshi.version>3.4.2</oshi.version> <kafka.version>0.8.2.2</kafka.version> <typesafe.config.version>1.3.0</typesafe.config.version> <py4j.version>0.10.4</py4j.version> <jcommander.version>1.27</jcommander.version> <dropwizard.version>0.8.0</dropwizard.version> <jodatime.version>2.2</jodatime.version> <protonpack.version>1.15</protonpack.version> <poi.version>3.17</poi.version> <jodah.typetools.version>0.5.0</jodah.typetools.version> <freemarker.version>2.3.23</freemarker.version> <geoip2.version>2.8.1</geoip2.version> <stream.analytics.version>2.9.8</stream.analytics.version> <opencsv.version>2.3</opencsv.version> <tdigest.version>3.2</tdigest.version> <jtransforms.version>3.1</jtransforms.version> <fastutil.version>6.5.7</fastutil.version> <unirest.version>1.4.9</unirest.version> <reflections.version>0.9.10</reflections.version> <breeze.version>1.0</breeze.version> <byteunits.version>0.9.1</byteunits.version> <!-- To skip header file parsing phase: -Djavacpp.parser.skip=true --> <javacpp.parser.skip>false</javacpp.parser.skip> <!-- To skip native compilation phase: -Djavacpp.compiler.skip=true --> <javacpp.compiler.skip>false</javacpp.compiler.skip> <javacpp.platform.root/> <!-- -Djavacpp.platform.root=/path/to/android-ndk/ --> <javacpp.platform.compiler/> <!-- -Djavacpp.platform.compiler=/path/to/arm-linux-androideabi-g++ --> <javacpp.platform.sysroot/> <!-- -Djavacpp.platform.sysroot=$(xcrun -sdk iphoneos -show-sdk-path) --> <javacpp.platform.extension/> <!-- -Djavacpp.platform.extension=-avx512 --> <javacpp.platform.properties>${javacpp.platform}</javacpp.platform.properties> <javacpp.version>1.5.5</javacpp.version> <javacpp-presets.version>1.5.5</javacpp-presets.version> <javacv.version>1.5.5</javacv.version> <javacpp.platform.additionalIncludePaths /> <javacpp.platform.cppincludepath /> <javacpp.platform.library.path /> <!-- Used in nd4j-backend-impls for directory-maven-plugin to assist with finding native libs for tests --> <nd4j.native.basedir /> <nd4j.cuda.basedir /> <python.version>3.9.2</python.version> <cpython-platform.version>${python.version}-${javacpp-presets.version}</cpython-platform.version> <numpy.version>1.20.1</numpy.version> <numpy.javacpp.version>${numpy.version}-${javacpp-presets.version}</numpy.javacpp.version> <openblas.version>0.3.13</openblas.version> <mkl.version>2021.1</mkl.version> <opencv.version>4.5.1</opencv.version> <ffmpeg.version>4.3.2</ffmpeg.version> <leptonica.version>1.80.0</leptonica.version> <hdf5.version>1.12.0</hdf5.version> <ale.version>0.6.1</ale.version> <gym.version>0.18.0</gym.version> <tensorflow.version>1.15.5</tensorflow.version> <tensorflow.javacpp.version>${tensorflow.version}-${javacpp-presets.version}</tensorflow.javacpp.version> <archunit.version>0.17</archunit.version> <commons-compress.version>1.18</commons-compress.version> <commonsmath.version>3.5</commonsmath.version> <commonslang.version>3.6</commonslang.version> <commonsio.version>2.5</commonsio.version> <commons-codec.version>1.10</commons-codec.version> <commons.math.version>${commonsmath.version}</commons.math.version> <commons.lang.version>${commonslang.version}</commons.lang.version> <commons.io.version>${commonsio.version}</commons.io.version> <commons-math3.version>${commonsmath.version}</commons-math3.version> <commons-lang.version>2.6</commons-lang.version> <commons-lang3.version>${commonslang.version}</commons-lang3.version> <commons-logging.version>1.2</commons-logging.version> <commons-net.version>3.1</commons-net.version> <commons-io.version>${commonsio.version}</commons-io.version> <commons-collections.version>3.2.2</commons-collections.version> <commons-collections4.version>4.1</commons-collections4.version> <spark.version>2.4.5</spark.version> <spark.major.version>2</spark.major.version> <args4j.version>2.0.29</args4j.version> <slf4j.version>1.7.21</slf4j.version> <junit.version>5.8.0-M1</junit.version> <archunit.version>0.14.1</archunit.version> <logback.version>1.2.3</logback.version> <jackson.version>2.10.1</jackson.version> <jackson.databind.version>2.10.3</jackson.databind.version> <shaded.snakeyaml.version>1.24</shaded.snakeyaml.version> <geo.jackson.version>2.8.7</geo.jackson.version> <lombok.version>1.18.16</lombok.version> <cleartk.version>2.0.0</cleartk.version> <lucene-solr.version>7.7.1</lucene-solr.version> <json.versiounitn>20131018</json.versiounitn> <google.protobuf.version>3.8.0</google.protobuf.version> <google.protobuf.solr.version>2.6.1</google.protobuf.solr.version> <failIfNoTests>false</failIfNoTests> <!-- Hadoop version used by Spark 1.6.3 and 2.2.1 (and likely others) --> <hadoop.version>2.2.0</hadoop.version> <camel.version>2.16.3</camel.version> <zookeeper.version>3.4.6</zookeeper.version> <agrona.version>0.5.4</agrona.version> <mapdb.version>3.0.5</mapdb.version> <sqlite.version>3.15.1</sqlite.version> <!-- 2.7.3 has Scala 2.11, 2.12 and 2.13 support only (no 2.10) --> <playframework.version>2.7.3</playframework.version> <javax.ws.rs.version>2.0</javax.ws.rs.version> <guava.jre.version>28.0-jre</guava.jre.version> <guava.android.version>28.0-android</guava.android.version> <gson.version>2.8.0</gson.version> <fbs.version>1.2.0-3f79e055</fbs.version> <threadly.version>4.10.0</threadly.version> <vertx.version>3.9.0</vertx.version> <flatbuffers.version>1.10.0</flatbuffers.version> <grpc.version>1.14.0</grpc.version> <javax.annotation-api.version>1.2</javax.annotation-api.version> <javax.activation.version>1.1.1</javax.activation.version> <jaxb.version>2.3.0</jaxb.version> <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version> <maven-source-plugin.version>3.0.1</maven-source-plugin.version> <maven-javadoc-plugin.version>3.0.1</maven-javadoc-plugin.version> <maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version> <maven-release-plugin.version>2.5.3</maven-release-plugin.version> <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version> <maven-scala-plugin.version>3.3.1</maven-scala-plugin.version> <maven-resources-plugin.version>3.0.1</maven-resources-plugin.version> <sbt-compiler-maven-plugin.version>1.0.0</sbt-compiler-maven-plugin.version> <maven-git-commit-plugin.version>2.2.2</maven-git-commit-plugin.version> <maven-git-commit-id-plugin.version>${maven-git-commit-plugin.version} </maven-git-commit-id-plugin.version> <maven-build-helper-plugin.version>3.0.0</maven-build-helper-plugin.version> <maven-play2-plugin.version>1.0.0-beta5</maven-play2-plugin.version> <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> <maven-surefire.version>${maven-surefire-plugin.version}</maven-surefire.version> <maven-enforcer-plugin.version>1.4.1</maven-enforcer-plugin.version> <maven-lint-plugin.version>0.0.11</maven-lint-plugin.version> <maven-formatter-plugin.version>2.12.1</maven-formatter-plugin.version> <maven-lifecycle-mapping-plugin.version>1.0.0</maven-lifecycle-mapping-plugin.version> <maven-lifecycle-mapping.version>${maven-lifecycle-mapping-plugin.version} </maven-lifecycle-mapping.version> <maven-shade-plugin.version>3.2.1</maven-shade-plugin.version> <maven-jar-plugin.version>3.0.2</maven-jar-plugin.version> <maven-dependency-plugin.version>3.0.0</maven-dependency-plugin.version> <maven-invoker-plugin.version>2.2</maven-invoker-plugin.version> <maven-antrun-plugin.version>1.8</maven-antrun-plugin.version> <maven-replacer-plugin.version>1.5.3</maven-replacer-plugin.version> <protoc-jar-maven-plugin.version>3.8.0</protoc-jar-maven-plugin.version> <mockito.version>2.2.6</mockito.version> <exec-maven-plugin.version>1.6.0</exec-maven-plugin.version> <jetspeed-mvn-maven-plugin.version>2.3.1</jetspeed-mvn-maven-plugin.version> <!-- base versions --> <!-- Scala 2.11.x --> <scala211.version>2.11.12</scala211.version> <scala211.binary.version>2.11</scala211.binary.version> <!-- Scala 2.12.x --> <scala212.version>2.12.9</scala212.version> <scala212.binary.version>2.12</scala212.binary.version> <scalatest.version>3.0.5</scalatest.version> <scalafmt.version>1.3.0</scalafmt.version> <scalacheck.version>1.14.0</scalacheck.version> <libnd4j.tests>--tests</libnd4j.tests> <libnd4j.test.skip>false</libnd4j.test.skip> <jumpy.test.skip>false</jumpy.test.skip> <pydatavec.test.skip>false</pydatavec.test.skip> <pydl4j.test.skip>false</pydl4j.test.skip> <skipBackendChoice>false</skipBackendChoice> <!-- Test resource profile must be enabled unless using -DskipTests etc --> <skipTestResourceEnforcement>false</skipTestResourceEnforcement> <findbugs-annotations.version>1.3.9-1</findbugs-annotations.version> <byteunits.version>0.9.1</byteunits.version> <neoitertools.version>1.0.0</neoitertools.version> <rxjava.version>2.2.0</rxjava.version> <kotlin.version>1.4.31</kotlin.version> </properties> <dependencyManagement> <dependencies> <!-- Parameterized Tests --> <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-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</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.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib-jdk8</artifactId> <version>${kotlin.version}</version> </dependency> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-test</artifactId> <version>${kotlin.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty</artifactId> <version>3.9.9.Final</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-buffer</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-common</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-handler</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-codec-http</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-codec</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-transport-native-epoll</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-transport</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-resolver</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-transport-native-unix-common</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-codec-http2</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-handler-proxy</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-codec-socks</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-resolver-dns</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-codec-dns</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>org.walkmod</groupId> <artifactId>junit4git</artifactId> <version>${junit4git.version}</version> <scope>test</scope> </dependency> </dependencies> </dependencyManagement> <build> <!-- <sourceDirectory>contrib</sourceDirectory>--> <pluginManagement> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> <inherited>true</inherited> <dependencies> <dependency> <groupId>org.apache.maven.surefire</groupId> <artifactId>surefire-junit-platform</artifactId> <version>${maven-surefire-plugin.version}</version> </dependency> </dependencies> <configuration> <classpathDependencyExcludes> <classpathDependencyExclude>org.junit:junit</classpathDependencyExclude> <classpathDependencyExclude>com.google.android:android </classpathDependencyExclude> </classpathDependencyExcludes> <useSystemClassLoader>true</useSystemClassLoader> <useManifestOnlyJar>false</useManifestOnlyJar> </configuration> </plugin> <plugin> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-plugin</artifactId> <version>${kotlin.version}</version> <configuration> <args> <arg>-Xjsr305=strict</arg> </args> <compilerPlugins> <plugin>spring</plugin> <plugin>jpa</plugin> </compilerPlugins> </configuration> <dependencies> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-allopen</artifactId> <version>${kotlin.version}</version> </dependency> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-noarg</artifactId> <version>${kotlin.version}</version> </dependency> </dependencies> <executions> <execution> <id>compile</id> <goals> <goal>compile</goal> </goals> <configuration> <sourceDirs> <sourceDir>${project.basedir}/src/main/stubs</sourceDir> <sourceDir>${project.basedir}/src/main/kotlin</sourceDir> <sourceDir>${project.basedir}/src/main/java</sourceDir> <sourceDir>${project.basedir}/src/main/ops</sourceDir> </sourceDirs> </configuration> </execution> <execution> <id>test-compile</id> <goals> <goal>test-compile</goal> </goals> <configuration> <sourceDirs> <sourceDir>${project.basedir}/src/test/stubs</sourceDir> <sourceDir>${project.basedir}/src/test/kotlin</sourceDir> <sourceDir>${project.basedir}/src/test/java</sourceDir> <sourceDir>${project.basedir}/src/test/ops</sourceDir> </sourceDirs> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven-compiler-plugin.version}</version> <configuration> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>1.4.1</version> <executions> <execution> <id>enforce-maven</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireMavenVersion> <version>3.3</version> <message>Please install maven 3.3 or higher</message> </requireMavenVersion> </rules> </configuration> </execution> <execution> <id>enforce-excluded-dependencies</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <bannedDependencies> <excludes> <exclude>org.projectlombok:*:*:*:compile</exclude> </excludes> </bannedDependencies> </rules> </configuration> </execution> </executions> </plugin> <!-- Configuration for git-commit-id plugin - used with ND4J version check functionality --> <plugin> <groupId>pl.project13.maven</groupId> <artifactId>git-commit-id-plugin</artifactId> <version>${maven-git-commit-plugin.version}</version> <executions> <execution> <goals> <goal>revision</goal> </goals> <phase>generate-resources</phase> </execution> </executions> <configuration> <generateGitPropertiesFile>true</generateGitPropertiesFile> <failOnNoGitDirectory>false</failOnNoGitDirectory> <generateGitPropertiesFilename> ${project.basedir}/target/generated-sources/src/main/resources/org/eclipse/${project.groupId}-${project.artifactId}-git.properties </generateGitPropertiesFilename> <gitDescribe> <skip>true</skip> </gitDescribe> </configuration> </plugin> <!-- Add generated git.properties files resource directory, for output of git-commit-id plugin --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>${maven-build-helper-plugin.version}</version> <executions> <execution> <id>add-resource</id> <phase>generate-resources</phase> <goals> <goal>add-resource</goal> </goals> <configuration> <resources> <resource> <directory> ${project.basedir}/target/generated-sources/src/main/resources </directory> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>com.lewisd</groupId> <artifactId>lint-maven-plugin</artifactId> <versionRange>[0.0.11,)</versionRange> <goals> <goal>check</goal> </goals> </pluginExecutionFilter> <action> <ignore/> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> <plugin> <groupId>net.revelc.code.formatter</groupId> <artifactId>formatter-maven-plugin</artifactId> <version>${maven-formatter-plugin.version}</version> <configuration> <!--suppress UnresolvedMavenProperty --> <configFile>${session.executionRootDirectory}/../contrib/formatter.xml</configFile> </configuration> </plugin> </plugins> </pluginManagement> <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-no-fork</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>1.4.1</version> </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.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.6.8</version> <executions> <execution> <id>default-deploy</id> <phase>deploy</phase> <goals> <goal>deploy</goal> </goals> </execution> </executions> <extensions>true</extensions> <configuration> <serverId>sonatype-nexus-snapshots</serverId> <nexusUrl>https://oss.sonatype.org/</nexusUrl> <skipStagingRepositoryClose>true</skipStagingRepositoryClose> </configuration> </plugin> <plugin> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-plugin</artifactId> <version>${kotlin.version}</version> <executions> <execution> <id>compile</id> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> <execution> <id>test-compile</id> <phase>test-compile</phase> <goals> <goal>test-compile</goal> </goals> </execution> </executions> <configuration> <jvmTarget>1.8</jvmTarget> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <executions> <execution> <id>default-compile</id> <phase>none</phase> </execution> <execution> <id>default-testCompile</id> <phase>none</phase> </execution> <execution> <id>compile</id> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> <execution> <id>testCompile</id> <phase>test-compile</phase> <goals> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <profiles> <profile> <id>github</id> <distributionManagement> <repository> <id>github</id> <name>GitHub Packages</name> <url>https://maven.pkg.github.com/eclipse/deeplearning4j</url> </repository> <snapshotRepository> <id>github</id> <name>Github snapshots</name> <url>https://maven.pkg.github.com/eclipse/deeplearning4j</url> </snapshotRepository> </distributionManagement> </profile> <profile> <id>ossrh</id> <distributionManagement> <repository> <id>sonatype-nexus-releases</id> <name>Nexus Release Repository</name> <url>http://oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> <snapshotRepository> <id>sonatype-nexus-snapshots</id> <name>Sonatype Nexus snapshot repository</name> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> </distributionManagement> </profile> <!-- This controls skipping the test backend choice enforcement below --> <profile> <id>skipTestCompileAndRun</id> <activation> <property> <name>maven.test.skip</name> <value>true</value> </property> </activation> <properties> <libnd4j.tests></libnd4j.tests> <libnd4j.test.skip>true</libnd4j.test.skip> <scala.test.skip>true</scala.test.skip> <skipBackendChoice>true</skipBackendChoice> <skipTestResourceEnforcement>true</skipTestResourceEnforcement> </properties> </profile> <profile> <id>skipTestRun</id> <activation> <property> <name>skipTests</name> </property> </activation> <properties> <libnd4j.tests></libnd4j.tests> <libnd4j.test.skip>true</libnd4j.test.skip> <scala.test.skip>true</scala.test.skip> <skipBackendChoice>true</skipBackendChoice> <skipTestResourceEnforcement>true</skipTestResourceEnforcement> </properties> </profile> <!-- testresources profile must be running when executing tests. However, maven enforcer plugin seems to be unable to enforce only when actually running tests - so we'll skip the enforcement (using profiles skipTestRun and skipTestCompileAndRun) when -DskipTests or -Dmaven.test.skip=true is used --> <profile> <id>testresources</id> <activation> <activeByDefault>false</activeByDefault> </activation> <dependencies> <dependency> <groupId>org.deeplearning4j</groupId> <artifactId>dl4j-test-resources</artifactId> <version>${dl4j-test-resources.version}</version> <classifier>${dl4j-test-resources.classifier}</classifier> <scope>test</scope> </dependency> </dependencies> </profile> <profile> <id>qa</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.2</version> <executions> <execution> <phase>install</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib </outputDirectory> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>release</id> <properties> <maven.test.skip>true</maven.test.skip> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${maven-javadoc-plugin.version}</version> <configuration> <doclint>all,-missing</doclint> <quiet>true</quiet> </configuration> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>${maven-gpg-plugin.version}</version> <configuration> <gpgArguments> <arg>--pinentry-mode</arg> <arg>loopback</arg> </gpgArguments> </configuration> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>trimSnapshots</id> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>${maven-build-helper-plugin.version}</version> <executions> <execution> <id>remove-old-artifacts</id> <phase>package</phase> <goals> <goal>remove-project-artifact</goal> </goals> <configuration> <removeAll>true </removeAll><!-- remove all versions of built artifacts including all versions. Install phase will regenerate --> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>1.9build</id> <activation> <jdk>1.9</jdk> </activation> <properties> <maven.compiler.release>7</maven.compiler.release> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-toolchains-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>libnd4jhome-defined</id> <activation> <property> <name>env.LIBND4J_HOME</name> </property> </activation> <properties> <libnd4jhome>${env.LIBND4J_HOME}</libnd4jhome> </properties> </profile> <profile> <id>libnd4jhome-undefined</id> <activation> <property> <name>!env.LIBND4J_HOME</name> </property> </activation> <properties> <libnd4jhome>${basedir}/../../../../libnd4j/</libnd4jhome> </properties> </profile> <!-- For Android: -Dplatform=android-arm --> <profile> <id>javacpp-platform-default</id> <activation> <property> <name>!javacpp.platform</name> </property> </activation> <properties> <javacpp.platform>${os.name}-${os.arch}</javacpp.platform> </properties> </profile> <!-- Profiles to set the default javacpp.platform property: If someone knows a better way to do this, please do let me know! --> <profile> <id>linux</id> <activation> <os> <name>linux</name> </os> </activation> <properties> <os.kernel>linux</os.kernel> <os.name>linux</os.name> </properties> </profile> <profile> <id>macosx</id> <activation> <os> <name>mac os x</name> </os> </activation> <properties> <os.kernel>darwin</os.kernel> <os.name>macosx</os.name> </properties> </profile> <profile> <id>windows</id> <activation> <os> <family>windows</family> </os> </activation> <properties> <os.kernel>windows</os.kernel> <os.name>windows</os.name> </properties> </profile> <profile> <id>arm</id> <activation> <os> <arch>arm</arch> </os> </activation> <properties> <os.arch>armhf</os.arch> </properties> </profile> <profile> <id>aarch64</id> <activation> <os> <arch>aarch64</arch> </os> </activation> <properties> <os.arch>arm64</os.arch> </properties> </profile> <profile> <id>armv8</id> <activation> <os> <arch>armv8</arch> </os> </activation> <properties> <os.arch>arm64</os.arch> </properties> </profile> <profile> <id>i386</id> <activation> <os> <arch>i386</arch> </os> </activation> <properties> <os.arch>x86_64</os.arch> </properties> </profile> <profile> <id>i486</id> <activation> <os> <arch>i486</arch> </os> </activation> <properties> <os.arch>x86_64</os.arch> </properties> </profile> <profile> <id>i586</id> <activation> <os> <arch>i586</arch> </os> </activation> <properties> <os.arch>x86_64</os.arch> </properties> </profile> <profile> <id>i686</id> <activation> <os> <arch>i686</arch> </os> </activation> <properties> <os.arch>x86_64</os.arch> </properties> </profile> <profile> <id>x86</id> <activation> <os> <arch>x86</arch> </os> </activation> <properties> <os.arch>x86_64</os.arch> </properties> </profile> <profile> <id>amd64</id> <activation> <os> <arch>amd64</arch> </os> </activation> <properties> <os.arch>x86_64</os.arch> </properties> </profile> <profile> <id>x86-64</id> <activation> <os> <arch>x86-64</arch> </os> </activation> <properties> <os.arch>x86_64</os.arch> </properties> </profile> <!-- Integration Tests Profile. By default (when this profile is not enabled) unit tests are run only. Note also that some tests may run fewer/quicker cases for unit tests vs. integration tests --> <profile> <id>integration-tests</id> <activation> <activeByDefault>false</activeByDefault> </activation> <build> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> <inherited>true</inherited> <configuration> <environmentVariables> <DL4J_INTEGRATION_TESTS>true</DL4J_INTEGRATION_TESTS> </environmentVariables> <argLine>-Xmx8g</argLine> </configuration> <dependencies> <dependency> <groupId>org.apache.maven.surefire</groupId> <artifactId>surefire-junit-platform</artifactId> <version>${maven-surefire-plugin.version}</version> </dependency> </dependencies> </plugin> </plugins> </build> </profile> </profiles> </project>