<?xml version="1.0" encoding="UTF-8"?> <!-- * ** header v3.0 * This file is a part of the CaosDB Project. * * Copyright (C) 2018 Research Group Biomedical Physics, * Max-Planck-Institute for Dynamics and Self-Organization Göttingen * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. * * ** end header --> <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.caosdb</groupId> <artifactId>caosdb-server</artifactId> <version>0.12.2</version> <packaging>jar</packaging> <name>CaosDB Server</name> <scm> <connection>scm:git:https://gitlab.indiscale.com/caosdb/src/caosdb-server.git</connection> </scm> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.testSourceDirectory>src/test/java</project.build.testSourceDirectory> <protobuf.version>3.14.0</protobuf.version> <grpc.version>1.42.1</grpc.version> <netty-tcnative.version>2.0.34.Final</netty-tcnative.version> <restlet.version>2.4.3</restlet.version> <log4j.version>2.17.2</log4j.version> </properties> <repositories> <repository> <id>maven-central</id> <url>https://repo1.maven.org/maven2/</url> <name>Maven Central</name> </repository> <repository> <id>maven-restlet</id> <name>Restlet repository</name> <url>https://maven.restlet.talend.com</url> </repository> <repository> <id>local-maven-repo</id> <url>file:///${project.basedir}/.m2-local</url> </repository> </repositories> <dependencyManagement> <dependencies> <dependency> <groupId>org.junit</groupId> <artifactId>junit-bom</artifactId> <version>5.9.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>de.timmfitschen</groupId> <artifactId>easy-units</artifactId> <version>0.0.1</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> <version>2.11.0</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.8.0</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <scope>test</scope> </dependency> <dependency> <!-- preventing parallel execution of some test classes --> <groupId>com.github.stephenc.jcip</groupId> <artifactId>jcip-annotations</artifactId> <version>1.0-1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jdom</groupId> <artifactId>jdom2</artifactId> <version>2.0.6</version> </dependency> <dependency> <groupId>org.restlet.jse</groupId> <artifactId>org.restlet</artifactId> <version>${restlet.version}</version> </dependency> <dependency> <groupId>org.restlet.jse</groupId> <artifactId>org.restlet.ext.fileupload</artifactId> <version>${restlet.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.19</version> </dependency> <dependency> <groupId>org.xerial</groupId> <artifactId>sqlite-jdbc</artifactId> <version>3.16.1</version> </dependency> <dependency> <groupId>net.snaq</groupId> <artifactId>dbpool</artifactId> <version>7.0.1</version> </dependency> <dependency> <groupId>org.reflections</groupId> <artifactId>reflections</artifactId> <version>0.9.11</version> </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr4</artifactId> <version>4.8-1</version> </dependency> <dependency> <groupId>org.restlet.jse</groupId> <artifactId>org.restlet.ext.jetty</artifactId> <version>${restlet.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-math</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.12</version> </dependency> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.0-rc1</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-jcs-core</artifactId> <version>2.2.1</version> </dependency> <dependency> <groupId>org.kohsuke</groupId> <artifactId>libpam4j</artifactId> <version>1.8</version> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-util-ajax</artifactId> <version>9.2.14.v20151106</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.32</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-netty</artifactId> <version>${grpc.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-tcnative</artifactId> <version>${netty-tcnative.version}</version> <classifier>${os.detected.classifier}</classifier> <scope>runtime</scope> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-protobuf</artifactId> <version>${grpc.version}</version> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-stub</artifactId> <version>${grpc.version}</version> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>${protobuf.version}</version> </dependency> </dependencies> <build> <resources> <resource> <directory>${basedir}/src/main/</directory> <includes> <include>**/*.properties</include> </includes> </resource> </resources> <sourceDirectory>${basedir}/src/main/java</sourceDirectory> <scriptSourceDirectory>${basedir}/src/main/scripts</scriptSourceDirectory> <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory> <outputDirectory>${basedir}/target/classes</outputDirectory> <testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory> <extensions> <extension> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>1.7.0</version> </extension> </extensions> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.3</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <finalName>${project.artifactId}-${project.version}-jar-with-dependencies</finalName> <transformers> <transformer implementation="com.github.edwgiz.mavenShadePlugin.log4j2CacheTransformer.PluginsCacheFileTransformer"></transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>org.caosdb.server.CaosDBServer</mainClass> </transformer> </transformers> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>com.github.edwgiz</groupId> <artifactId>maven-shade-plugin.log4j2-cachefile-transformer</artifactId> <version>2.8.1</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.antlr</groupId> <artifactId>antlr4-maven-plugin</artifactId> <version>4.8-1</version> <configuration> <sourceDirectory>${basedir}/src/main/java</sourceDirectory> </configuration> <executions> <execution> <goals> <goal>antlr4</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>11</source> <target>11</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M5</version> <configuration> <includes> <include>**/*.java</include> </includes> <systemPropertyVariables> <caosdb.debug>true</caosdb.debug> <log4j2.debug>true</log4j2.debug> </systemPropertyVariables> <reuseForks>false</reuseForks> <!-- Start 0.5 JVMs per CPU core Higher numbers *seem* to lead to higher failure rates... :-/ --> <forkCount>0.5C</forkCount> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>buildnumber-maven-plugin</artifactId> <version>1.4</version> <executions> <execution> <phase>generate-resources</phase> <goals> <goal>create-metadata</goal> </goals> </execution> </executions> <configuration> <addOutputDirectoryToResources>true</addOutputDirectoryToResources> <applicationPropertyName>project.name</applicationPropertyName> <revisionPropertyName>project.revision</revisionPropertyName> <versionPropertyName>project.version</versionPropertyName> <timestampPropertyName>build.timestamp</timestampPropertyName> <outputDirectory>${basedir}/target/classes/org/caosdb/server/</outputDirectory> <outputName>build.properties</outputName> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.6.0</version> <executions> <execution> <id>run</id> <goals> <goal>java</goal> </goals> <configuration> <mainClass>org.caosdb.server.CaosDBServer</mainClass> <arguments> <argument>silent</argument> </arguments> </configuration> </execution> <execution> <id>run-debug</id> <goals> <goal>java</goal> </goals> <configuration> <mainClass>org.caosdb.server.CaosDBServer</mainClass> <arguments> <argument>silent</argument> </arguments> <systemProperties> <systemProperty> <key>caosdb.debug</key> <value>true</value> </systemProperty> </systemProperties> </configuration> </execution> </executions> </plugin> <plugin> <groupId>com.spotify.fmt</groupId> <artifactId>fmt-maven-plugin</artifactId> <version>2.21.1</version> <configuration> <skip> <!-- Set skip to `true` to prevent auto-formatting while coding. --> false </skip> </configuration> <executions> <execution> <goals> <goal>format</goal> </goals> </execution> </executions> </plugin> <!-- Remove easy-units from classpath generation because of https://github.com/jdee-emacs/jdee/issues/125 (no sources inside easy-units) --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <configuration> <excludeArtifactIds>easy-units</excludeArtifactIds> </configuration> </plugin> <plugin> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>1.7.0</version> <executions> <execution> <phase>initialize</phase> <goals> <goal>detect</goal> </goals> </execution> </executions> </plugin> <!-- code generation protobuf/grpc --> <plugin> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> <version>0.6.1</version> <configuration> <protoSourceRoot>${basedir}/caosdb-proto/proto/</protoSourceRoot> <protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact> <pluginId>grpc-java</pluginId> <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact> </configuration> <executions> <execution> <goals> <goal>compile</goal> <goal>compile-custom</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <url>caosdb.org</url> </project>