635 lines
27 KiB
XML
635 lines
27 KiB
XML
<!--
|
|
|
|
Copyright © 2016-2018 The Thingsboard Authors
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
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.
|
|
|
|
-->
|
|
<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>
|
|
<parent>
|
|
<groupId>org.thingsboard</groupId>
|
|
<version>1.4.1-SNAPSHOT</version>
|
|
<artifactId>thingsboard</artifactId>
|
|
</parent>
|
|
<groupId>org.thingsboard</groupId>
|
|
<artifactId>application</artifactId>
|
|
<packaging>jar</packaging>
|
|
|
|
<name>ThingsBoard Server Application</name>
|
|
<url>https://thingsboard.io</url>
|
|
<description>Open-source IoT Platform - Device management, data collection, processing and visualization
|
|
</description>
|
|
|
|
<properties>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<main.dir>${basedir}/..</main.dir>
|
|
<pkg.name>thingsboard</pkg.name>
|
|
<pkg.unixLogFolder>/var/log/${pkg.name}</pkg.unixLogFolder>
|
|
<pkg.installFolder>/usr/share/${pkg.name}</pkg.installFolder>
|
|
<pkg.win.dist>${project.build.directory}/windows</pkg.win.dist>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-transport-native-epoll</artifactId>
|
|
<version>${netty.version}</version>
|
|
<!-- Explicitly bring in the linux classifier, test may fail on 32-bit linux -->
|
|
<classifier>linux-x86_64</classifier>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.thingsboard</groupId>
|
|
<artifactId>extensions-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.thingsboard</groupId>
|
|
<artifactId>extensions-core</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.thingsboard.common</groupId>
|
|
<artifactId>transport</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.thingsboard.transport</groupId>
|
|
<artifactId>http</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.thingsboard.transport</groupId>
|
|
<artifactId>coap</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.thingsboard.transport</groupId>
|
|
<artifactId>mqtt</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.thingsboard</groupId>
|
|
<artifactId>dao</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.thingsboard</groupId>
|
|
<artifactId>dao</artifactId>
|
|
<type>test-jar</type>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.takari.junit</groupId>
|
|
<artifactId>takari-cpsuite</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.eclipse.paho</groupId>
|
|
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.cassandraunit</groupId>
|
|
<artifactId>cassandra-unit</artifactId>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-log4j12</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.thingsboard</groupId>
|
|
<artifactId>ui</artifactId>
|
|
<version>${project.version}</version>
|
|
<scope>runtime</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-security</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-web</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-websocket</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.jsonwebtoken</groupId>
|
|
<artifactId>jjwt</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.velocity</groupId>
|
|
<artifactId>velocity</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.velocity</groupId>
|
|
<artifactId>velocity-tools</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>commons-io</groupId>
|
|
<artifactId>commons-io</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-csv</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework</groupId>
|
|
<artifactId>spring-context-support</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.typesafe.akka</groupId>
|
|
<artifactId>akka-actor_${scala.version}</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.typesafe.akka</groupId>
|
|
<artifactId>akka-slf4j_${scala.version}</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>log4j-over-slf4j</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ch.qos.logback</groupId>
|
|
<artifactId>logback-core</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>ch.qos.logback</groupId>
|
|
<artifactId>logback-classic</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>javax.mail</groupId>
|
|
<artifactId>mail</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.curator</groupId>
|
|
<artifactId>curator-recipes</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.protobuf</groupId>
|
|
<artifactId>protobuf-java</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.grpc</groupId>
|
|
<artifactId>grpc-netty</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.grpc</groupId>
|
|
<artifactId>grpc-protobuf</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.grpc</groupId>
|
|
<artifactId>grpc-stub</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.springfox</groupId>
|
|
<artifactId>springfox-swagger-ui</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.springfox</groupId>
|
|
<artifactId>springfox-swagger2</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.sun.winsw</groupId>
|
|
<artifactId>winsw</artifactId>
|
|
<classifier>bin</classifier>
|
|
<type>exe</type>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.thingsboard</groupId>
|
|
<artifactId>tools</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.security</groupId>
|
|
<artifactId>spring-security-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.jayway.jsonpath</groupId>
|
|
<artifactId>json-path</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.jayway.jsonpath</groupId>
|
|
<artifactId>json-path-assert</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.mockito</groupId>
|
|
<artifactId>mockito-all</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.dbunit</groupId>
|
|
<artifactId>dbunit</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.github.springtestdbunit</groupId>
|
|
<artifactId>spring-test-dbunit</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.hsqldb</groupId>
|
|
<artifactId>hsqldb</artifactId>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<finalName>${pkg.name}-${project.version}</finalName>
|
|
<resources>
|
|
<resource>
|
|
<directory>${project.basedir}/src/main/resources</directory>
|
|
</resource>
|
|
</resources>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>${surfire.version}</version>
|
|
<configuration>
|
|
<systemPropertyVariables>
|
|
<spring.config.name>thingsboard</spring.config.name>
|
|
</systemPropertyVariables>
|
|
<includes>
|
|
<include>**/*TestSuite.java</include>
|
|
</includes>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>copy-conf</id>
|
|
<phase>process-resources</phase>
|
|
<goals>
|
|
<goal>copy-resources</goal>
|
|
</goals>
|
|
<configuration>
|
|
<outputDirectory>${project.build.directory}/conf</outputDirectory>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/resources</directory>
|
|
<excludes>
|
|
<exclude>logback.xml</exclude>
|
|
</excludes>
|
|
<filtering>false</filtering>
|
|
</resource>
|
|
</resources>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>copy-service-conf</id>
|
|
<phase>process-resources</phase>
|
|
<goals>
|
|
<goal>copy-resources</goal>
|
|
</goals>
|
|
<configuration>
|
|
<outputDirectory>${project.build.directory}/conf</outputDirectory>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/conf</directory>
|
|
<filtering>true</filtering>
|
|
</resource>
|
|
</resources>
|
|
<filters>
|
|
<filter>src/main/filters/unix.properties</filter>
|
|
</filters>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>copy-win-conf</id>
|
|
<phase>process-resources</phase>
|
|
<goals>
|
|
<goal>copy-resources</goal>
|
|
</goals>
|
|
<configuration>
|
|
<outputDirectory>${pkg.win.dist}/conf</outputDirectory>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/resources</directory>
|
|
<excludes>
|
|
<exclude>logback.xml</exclude>
|
|
</excludes>
|
|
<filtering>false</filtering>
|
|
</resource>
|
|
<resource>
|
|
<directory>src/main/conf</directory>
|
|
<excludes>
|
|
<exclude>thingsboard.conf</exclude>
|
|
</excludes>
|
|
<filtering>true</filtering>
|
|
</resource>
|
|
</resources>
|
|
<filters>
|
|
<filter>src/main/filters/windows.properties</filter>
|
|
</filters>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>copy-control</id>
|
|
<phase>process-resources</phase>
|
|
<goals>
|
|
<goal>copy-resources</goal>
|
|
</goals>
|
|
<configuration>
|
|
<outputDirectory>${project.build.directory}/control</outputDirectory>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/scripts/control</directory>
|
|
<filtering>true</filtering>
|
|
</resource>
|
|
</resources>
|
|
<filters>
|
|
<filter>src/main/filters/unix.properties</filter>
|
|
</filters>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>copy-install</id>
|
|
<phase>process-resources</phase>
|
|
<goals>
|
|
<goal>copy-resources</goal>
|
|
</goals>
|
|
<configuration>
|
|
<outputDirectory>${project.build.directory}/bin/install</outputDirectory>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/scripts/install</directory>
|
|
<includes>
|
|
<include>**/*.sh</include>
|
|
<include>**/*.xml</include>
|
|
</includes>
|
|
<filtering>true</filtering>
|
|
</resource>
|
|
</resources>
|
|
<filters>
|
|
<filter>src/main/filters/unix.properties</filter>
|
|
</filters>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>copy-windows-control</id>
|
|
<phase>process-resources</phase>
|
|
<goals>
|
|
<goal>copy-resources</goal>
|
|
</goals>
|
|
<configuration>
|
|
<outputDirectory>${pkg.win.dist}</outputDirectory>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/scripts/windows</directory>
|
|
<filtering>true</filtering>
|
|
</resource>
|
|
</resources>
|
|
<filters>
|
|
<filter>src/main/filters/windows.properties</filter>
|
|
</filters>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>copy-windows-install</id>
|
|
<phase>process-resources</phase>
|
|
<goals>
|
|
<goal>copy-resources</goal>
|
|
</goals>
|
|
<configuration>
|
|
<outputDirectory>${pkg.win.dist}/install</outputDirectory>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/scripts/install</directory>
|
|
<includes>
|
|
<include>logback.xml</include>
|
|
</includes>
|
|
<filtering>true</filtering>
|
|
</resource>
|
|
</resources>
|
|
<filters>
|
|
<filter>src/main/filters/windows.properties</filter>
|
|
</filters>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>copy-data</id>
|
|
<phase>process-resources</phase>
|
|
<goals>
|
|
<goal>copy-resources</goal>
|
|
</goals>
|
|
<configuration>
|
|
<outputDirectory>${project.build.directory}/data</outputDirectory>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/data</directory>
|
|
</resource>
|
|
<resource>
|
|
<directory>../dao/src/main/resources</directory>
|
|
<includes>
|
|
<include>**/*.cql</include>
|
|
<include>**/*.sql</include>
|
|
</includes>
|
|
<filtering>false</filtering>
|
|
</resource>
|
|
</resources>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>copy-extensions</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>copy</goal>
|
|
</goals>
|
|
<configuration>
|
|
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
|
|
<artifactItems>
|
|
<artifactItem>
|
|
<groupId>org.thingsboard.extensions</groupId>
|
|
<artifactId>extension-rabbitmq</artifactId>
|
|
<classifier>extension</classifier>
|
|
</artifactItem>
|
|
<artifactItem>
|
|
<groupId>org.thingsboard.extensions</groupId>
|
|
<artifactId>extension-rest-api-call</artifactId>
|
|
<classifier>extension</classifier>
|
|
</artifactItem>
|
|
<artifactItem>
|
|
<groupId>org.thingsboard.extensions</groupId>
|
|
<artifactId>extension-kafka</artifactId>
|
|
<classifier>extension</classifier>
|
|
</artifactItem>
|
|
<artifactItem>
|
|
<groupId>org.thingsboard.extensions</groupId>
|
|
<artifactId>extension-mqtt</artifactId>
|
|
<classifier>extension</classifier>
|
|
</artifactItem>
|
|
<artifactItem>
|
|
<groupId>org.thingsboard.extensions</groupId>
|
|
<artifactId>extension-sqs</artifactId>
|
|
<classifier>extension</classifier>
|
|
</artifactItem>
|
|
<artifactItem>
|
|
<groupId>org.thingsboard.extensions</groupId>
|
|
<artifactId>extension-sns</artifactId>
|
|
<classifier>extension</classifier>
|
|
</artifactItem>
|
|
</artifactItems>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>copy-winsw-service</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>copy</goal>
|
|
</goals>
|
|
<configuration>
|
|
<artifactItems>
|
|
<artifactItem>
|
|
<groupId>com.sun.winsw</groupId>
|
|
<artifactId>winsw</artifactId>
|
|
<classifier>bin</classifier>
|
|
<type>exe</type>
|
|
<destFileName>service.exe</destFileName>
|
|
</artifactItem>
|
|
</artifactItems>
|
|
<outputDirectory>${pkg.win.dist}</outputDirectory>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<configuration>
|
|
<excludes>
|
|
<exclude>**/logback.xml</exclude>
|
|
</excludes>
|
|
<archive>
|
|
<manifestEntries>
|
|
<Implementation-Title>ThingsBoard</Implementation-Title>
|
|
<Implementation-Version>${project.version}</Implementation-Version>
|
|
</manifestEntries>
|
|
</archive>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
<configuration>
|
|
<mainClass>org.thingsboard.server.ThingsboardServerApplication</mainClass>
|
|
<classifier>boot</classifier>
|
|
<layout>ZIP</layout>
|
|
<executable>true</executable>
|
|
<excludeDevtools>true</excludeDevtools>
|
|
<embeddedLaunchScriptProperties>
|
|
<confFolder>${pkg.installFolder}/conf</confFolder>
|
|
<logFolder>${pkg.unixLogFolder}</logFolder>
|
|
<logFilename>${pkg.name}.out</logFilename>
|
|
<initInfoProvides>${pkg.name}</initInfoProvides>
|
|
</embeddedLaunchScriptProperties>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>repackage</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.fortasoft</groupId>
|
|
<artifactId>gradle-maven-plugin</artifactId>
|
|
<configuration>
|
|
<tasks>
|
|
<task>build</task>
|
|
<task>buildDeb</task>
|
|
<task>buildRpm</task>
|
|
</tasks>
|
|
<args>
|
|
<arg>-PprojectBuildDir=${project.build.directory}</arg>
|
|
<arg>-PprojectVersion=${project.version}</arg>
|
|
<arg>-PmainJar=${project.build.directory}/${project.build.finalName}-boot.${project.packaging}</arg>
|
|
<arg>-PpkgName=${pkg.name}</arg>
|
|
<arg>-PpkgInstallFolder=${pkg.installFolder}</arg>
|
|
<arg>-PpkgLogFolder=${pkg.unixLogFolder}</arg>
|
|
</args>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>invoke</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<configuration>
|
|
<finalName>${pkg.name}</finalName>
|
|
<descriptors>
|
|
<descriptor>src/main/assembly/windows.xml</descriptor>
|
|
</descriptors>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>assembly</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>single</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.xolstice.maven.plugins</groupId>
|
|
<artifactId>protobuf-maven-plugin</artifactId>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
<repositories>
|
|
<repository>
|
|
<id>jenkins</id>
|
|
<name>Jenkins Repository</name>
|
|
<url>http://repo.jenkins-ci.org/releases</url>
|
|
<snapshots>
|
|
<enabled>false</enabled>
|
|
</snapshots>
|
|
</repository>
|
|
</repositories>
|
|
</project>
|