| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you 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.apache</groupId> |
| <artifactId>apache</artifactId> |
| <version>21</version> |
| </parent> |
| <groupId>org.apache.iotdb</groupId> |
| <artifactId>iotdb-parent</artifactId> |
| <version>0.9.0</version> |
| <packaging>pom</packaging> |
| <name>Apache IoTDB (incubating) Project Parent POM</name> |
| <description>This is the top level project that builds, packages the tsfile, iotdb engine, jdbc, and integration libs.</description> |
| <licenses> |
| <license> |
| <name>The Apache License, Version 2.0</name> |
| <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> |
| </license> |
| </licenses> |
| <scm> |
| <connection>scm:git:ssh://git@github.com/apache/incubator-iotdb.git</connection> |
| <developerConnection>scm:git:ssh://git@github.com/apache/incubator-iotdb.git</developerConnection> |
| <url>ssh://git@github.com:apache/incubator-iotdb.git</url> |
| <tag>release/0.9.0</tag> |
| </scm> |
| <modules> |
| <module>tsfile</module> |
| <module>service-rpc</module> |
| <module>jdbc</module> |
| <module>session</module> |
| <module>client</module> |
| <module>server</module> |
| <module>example</module> |
| <module>grafana</module> |
| <module>spark-tsfile</module> |
| <module>hadoop</module> |
| <module>spark-iotdb-connector</module> |
| <module>distribution</module> |
| <module>hive-connector</module> |
| </modules> |
| <!-- Properties Management --> |
| <properties> |
| <maven.compiler.source>1.8</maven.compiler.source> |
| <maven.compiler.target>1.8</maven.compiler.target> |
| <maven.assembly.version>2.5.5</maven.assembly.version> |
| <scala.version>2.11.12</scala.version> |
| <hadoop2.version>2.7.3</hadoop2.version> |
| <hive2.version>2.3.6</hive2.version> |
| <junit.version>4.12</junit.version> |
| <slf4j.version>1.7.12</slf4j.version> |
| <logback.version>1.1.11</logback.version> |
| <joda.version>2.9.9</joda.version> |
| <spark.version>2.4.3</spark.version> |
| <common.io.version>2.5</common.io.version> |
| <commons.collections4>4.0</commons.collections4> |
| <thrift.version>0.9.3</thrift.version> |
| <airline.version>0.8</airline.version> |
| <jackson.version>2.10.0</jackson.version> |
| <antlr3.version>3.5.2</antlr3.version> |
| <common.cli.version>1.3.1</common.cli.version> |
| <common.codec.version>1.13</common.codec.version> |
| <common.collections.version>3.2.2</common.collections.version> |
| <common.lang.version>2.6</common.lang.version> |
| <common.lang3.version>3.8.1</common.lang3.version> |
| <common.logging.version>1.1.3</common.logging.version> |
| <jline.version>2.14.5</jline.version> |
| <jetty.version>9.4.12.v20180830</jetty.version> |
| <metrics.version>3.2.6</metrics.version> |
| <!-- URL of the ASF SonarQube server --> |
| <sonar.host.url>https://builds.apache.org/analysis</sonar.host.url> |
| <!-- Exclude all generated code --> |
| <sonar.exclusions>**/generated-sources</sonar.exclusions> |
| </properties> |
| <!-- |
| if we claim dependencies in dependencyManagement, then we do not claim |
| their version in sub-project's pom, but we have to claim themselves again |
| in sub-projects |
| --> |
| <dependencyManagement> |
| <dependencies> |
| <!-- |
| in the subprojects, you have to claim logback again, because maybe |
| someone in your dependences uses log4j lib. |
| --> |
| <dependency> |
| <groupId>ch.qos.logback</groupId> |
| <artifactId>logback-classic</artifactId> |
| <version>${logback.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.alibaba</groupId> |
| <artifactId>fastjson</artifactId> |
| <version>1.2.31</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-annotations</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-core</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-databind</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.module</groupId> |
| <artifactId>jackson-module-paranamer</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.module</groupId> |
| <artifactId>jackson-module-scala_2.11</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.code.findbugs</groupId> |
| <artifactId>jsr305</artifactId> |
| <version>3.0.2</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.guava</groupId> |
| <artifactId>guava</artifactId> |
| <version>21.0</version> |
| </dependency> |
| <dependency> |
| <groupId>com.sun.istack</groupId> |
| <artifactId>istack-commons-runtime</artifactId> |
| <version>3.0.8</version> |
| </dependency> |
| <dependency> |
| <groupId>com.sun.xml.fastinfoset</groupId> |
| <artifactId>FastInfoset</artifactId> |
| <version>1.2.16</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-lang</groupId> |
| <artifactId>commons-lang</artifactId> |
| <version>${common.lang.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-cli</groupId> |
| <artifactId>commons-cli</artifactId> |
| <version>${common.cli.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-codec</groupId> |
| <artifactId>commons-codec</artifactId> |
| <version>${common.codec.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-collections</groupId> |
| <artifactId>commons-collections</artifactId> |
| <version>${common.collections.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-io</groupId> |
| <artifactId>commons-io</artifactId> |
| <version>${common.io.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-logging</groupId> |
| <artifactId>commons-logging</artifactId> |
| <version>${common.logging.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-all</artifactId> |
| <version>4.1.42.Final</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.annotation</groupId> |
| <artifactId>javax.annotation-api</artifactId> |
| <version>1.3.2</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.xml.bind</groupId> |
| <artifactId>jaxb-api</artifactId> |
| <version>2.4.0-b180725.0427</version> |
| </dependency> |
| <dependency> |
| <groupId>jline</groupId> |
| <artifactId>jline</artifactId> |
| <version>${jline.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <version>${junit.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| <version>1.2.17</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-server</artifactId> |
| <version>${jetty.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-webapp</artifactId> |
| <version>${jetty.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.dropwizard.metrics</groupId> |
| <artifactId>metrics-core</artifactId> |
| <version>${metrics.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.dropwizard.metrics</groupId> |
| <artifactId>metrics-jvm</artifactId> |
| <version>${metrics.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.dropwizard.metrics</groupId> |
| <artifactId>metrics-json</artifactId> |
| <version>${metrics.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>me.tongfei</groupId> |
| <artifactId>progressbar</artifactId> |
| <version>0.7.3</version> |
| <exclusions> |
| <!-- This transitive dependency duplicates classes from jline:jline:jar:2.14.5:compile --> |
| <exclusion> |
| <groupId>org.fusesource.jansi</groupId> |
| <artifactId>jansi</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.antlr</groupId> |
| <artifactId>antlr-runtime</artifactId> |
| <version>${antlr3.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-collections4</artifactId> |
| <version>${commons.collections4}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-lang3</artifactId> |
| <version>${common.lang3.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-client</artifactId> |
| <version>${hadoop2.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hive</groupId> |
| <artifactId>hive-serde</artifactId> |
| <version>${hive2.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hive</groupId> |
| <artifactId>hive-exec</artifactId> |
| <version>${hive2.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.spark</groupId> |
| <artifactId>spark-core_2.11</artifactId> |
| <version>${spark.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.spark</groupId> |
| <artifactId>spark-sql_2.11</artifactId> |
| <version>${spark.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.jackson</groupId> |
| <artifactId>jackson-core-asl</artifactId> |
| <version>1.9.13</version> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.jackson</groupId> |
| <artifactId>jackson-mapper-asl</artifactId> |
| <version>1.9.13</version> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jaxb</groupId> |
| <artifactId>jaxb-runtime</artifactId> |
| <version>2.4.0-b180725.0644</version> |
| <exclusions> |
| <exclusion> |
| <groupId>jakarta.activation</groupId> |
| <artifactId>jakarta.activation-api</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.javassist</groupId> |
| <artifactId>javassist</artifactId> |
| <version>3.24.0-GA</version> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-all</artifactId> |
| <version>1.10.19</version> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <version>2.23.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.objenesis</groupId> |
| <artifactId>objenesis</artifactId> |
| <version>3.0.1</version> |
| </dependency> |
| <dependency> |
| <groupId>org.powermock</groupId> |
| <artifactId>powermock-core</artifactId> |
| <version>2.0.2</version> |
| </dependency> |
| <dependency> |
| <groupId>org.powermock</groupId> |
| <artifactId>powermock-api-mockito2</artifactId> |
| <version>2.0.2</version> |
| </dependency> |
| <dependency> |
| <groupId>org.powermock</groupId> |
| <artifactId>powermock-module-junit4</artifactId> |
| <version>2.0.2</version> |
| </dependency> |
| <dependency> |
| <groupId>org.scala-lang</groupId> |
| <artifactId>scala-library</artifactId> |
| <version>${scala.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.scala-lang</groupId> |
| <artifactId>scala-reflect</artifactId> |
| <version>${scala.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.scalatest</groupId> |
| <artifactId>scalatest_2.11</artifactId> |
| <version>3.0.5</version> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>jcl-over-slf4j</artifactId> |
| <version>1.7.25</version> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>jul-to-slf4j</artifactId> |
| <version>1.7.25</version> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| <version>1.7.25</version> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-log4j12</artifactId> |
| <version>1.7.25</version> |
| </dependency> |
| <dependency> |
| <groupId>org.xerial.snappy</groupId> |
| <artifactId>snappy-java</artifactId> |
| <version>1.1.7.2</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.thrift</groupId> |
| <artifactId>libthrift</artifactId> |
| <version>${thrift.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>org.apache.httpcomponents</groupId> |
| <artifactId>httpclient</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.apache.httpcomponents</groupId> |
| <artifactId>httpcore</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>io.airlift</groupId> |
| <artifactId>airline</artifactId> |
| <version>${airline.version}</version> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| <dependencies> |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-all</artifactId> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| <build> |
| <pluginManagement> |
| <plugins> |
| <!-- using `mvn -N versions:update-child-modules` can update the version |
| of child modules to what their parent claims --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>versions-maven-plugin</artifactId> |
| <version>2.3</version> |
| <configuration> |
| <generateBackupPoms>false</generateBackupPoms> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <configuration> |
| <excludePackageNames>*thrift*</excludePackageNames> |
| <!-- |
| This will suppress the generation of a hidden timestamp at the top of each generated html page |
| and hopefully let the site generation nod to too big updates every time. |
| --> |
| <notimestamp>true</notimestamp> |
| <!--Don't fail the build, just because there were issues in the JavaDoc generation.--> |
| <failOnError>false</failOnError> |
| </configuration> |
| </plugin> |
| <!-- |
| We need to increase the memory available to tests as we were |
| getting out-of-memory errors when building on windows machines. |
| --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <argLine>-Xmx1024m</argLine> |
| </configuration> |
| </plugin> |
| <!-- |
| Plugin for doing the code analysis. |
| --> |
| <plugin> |
| <groupId>org.sonarsource.scanner.maven</groupId> |
| <artifactId>sonar-maven-plugin</artifactId> |
| <version>3.6.0.1398</version> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <configuration> |
| <consoleOutput>true</consoleOutput> |
| <excludes> |
| <!-- Git related files --> |
| <exclude>**/.git/**</exclude> |
| <exclude>**/.mvn/**</exclude> |
| <exclude>**/.gitignore</exclude> |
| <!-- Maven related files --> |
| <exclude>**/target/**</exclude> |
| <!-- Eclipse related files --> |
| <exclude>**/.project</exclude> |
| <exclude>**/.settings/**</exclude> |
| <exclude>**/.classpath</exclude> |
| <!-- IntelliJ related files --> |
| <exclude>**/.idea/**</exclude> |
| <exclude>**/*.iml</exclude> |
| <!-- Runtime log --> |
| <exclude>**/*.log</exclude> |
| <!-- Exclude CVS files --> |
| <exclude>**/*.cvs</exclude> |
| <!-- licenses --> |
| <exclude>licenses/*</exclude> |
| <!-- generated by Github --> |
| <exclude>.github/**</exclude> |
| <!--Generated by Apache Release --> |
| <exclude>local-snapshots-dir/**</exclude> |
| <!-- JSON can't contain comments and therefore no Apache header --> |
| <exclude>*.json</exclude> |
| <!-- visualization plans --> |
| <exclude>**/*.plan</exclude> |
| <exclude>NOTICE-binary</exclude> |
| <exclude>LICENSE-binary</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| <plugins> |
| <!-- |
| Strange things usually happen if you run with a too low Java version. |
| This plugin not only checks the minimum java version of 1.8, but also |
| checks all dependencies (and transitive dependencies) for reported CVEs. |
| --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <version>3.0.0-M2</version> |
| <!--$NO-MVN-MAN-VER$--> |
| <executions> |
| <!-- Ensure we're not mixing dependency versions --> |
| <execution> |
| <id>enforce-version-convergence</id> |
| <configuration> |
| <rules> |
| <dependencyConvergence/> |
| </rules> |
| </configuration> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| </execution> |
| <!-- |
| Fails the build if classes are included from multiple |
| artifacts and these are not identical. |
| --> |
| <!--execution> |
| <id>enforce-ban-duplicate-classes</id> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <banDuplicateClasses> |
| <scopes> |
| <scope>compile</scope> |
| <scope>provided</scope> |
| </scopes> |
| <findAllDuplicates>true</findAllDuplicates> |
| <ignoreWhenIdentical>true</ignoreWhenIdentical> |
| </banDuplicateClasses> |
| </rules> |
| <fail>true</fail> |
| </configuration> |
| </execution--> |
| <!-- Make sure no dependencies are used for which known vulnerabilities exist. --> |
| <execution> |
| <id>vulnerability-checks</id> |
| <phase>validate</phase> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <!-- Just generate warnings for now --> |
| <fail>false</fail> |
| <rules> |
| <requireJavaVersion> |
| <version>1.8.0</version> |
| </requireJavaVersion> |
| <!-- Disabled for now as it breaks the ability to build single modules --> |
| <!--reactorModuleConvergence/--> |
| <banVulnerable implementation="org.sonatype.ossindex.maven.enforcer.BanVulnerableDependencies"/> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| <dependencies> |
| <dependency> |
| <groupId>org.sonatype.ossindex.maven</groupId> |
| <artifactId>ossindex-maven-enforcer-rules</artifactId> |
| <version>1.0.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>extra-enforcer-rules</artifactId> |
| <version>1.2</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| <!-- |
| Even if Maven transitively pulls in dependencies, relying on these can |
| quite often cause hard to find problems. So it's a good practice to make |
| sure everything directly required is also directly added as a dependency. |
| On the other side adding unused dependency only over-complicates the |
| the dependency graph, so the maven-dependency-plugin checks we depend on |
| what we need and only that and that runtime dependencies are correctly |
| imported with runtime scope. |
| --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>check-dependencies</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>analyze-only</goal> |
| </goals> |
| <configuration> |
| <failOnWarning>false</failOnWarning> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>net.revelc.code.formatter</groupId> |
| <artifactId>formatter-maven-plugin</artifactId> |
| <version>2.8.1</version> |
| </plugin> |
| <!--for code style check --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-checkstyle-plugin</artifactId> |
| <version>3.0.0</version> |
| <dependencies> |
| <dependency> |
| <groupId>com.puppycrawl.tools</groupId> |
| <artifactId>checkstyle</artifactId> |
| <version>8.18</version> |
| </dependency> |
| </dependencies> |
| <executions> |
| <execution> |
| <id>validate</id> |
| <phase>validate</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| <configuration> |
| <configLocation>checkstyle.xml</configLocation> |
| </configuration> |
| </execution> |
| </executions> |
| <configuration> |
| <configLocation>checkstyle.xml</configLocation> |
| </configuration> |
| </plugin> |
| <!-- use mvn license:remove to remove license header; mvn license:format --> |
| <!-- we do not recommend using the plugin because it maybe out of control |
| (adding headers in some files that you do not want) --> |
| <!--<plugin> |
| <groupId>com.mycila</groupId> |
| <artifactId>license-maven-plugin</artifactId> |
| <version>3.0</version> |
| <configuration> |
| <header>asf.header</header> |
| <properties> |
| <owner>Apache IoTDB(incubating)</owner> |
| <email>dev@iotdb.apache.org</email> |
| <project.inceptionYear>2019</project.inceptionYear> |
| </properties> |
| <mapping> |
| <g>DOUBLESLASH_STYLE</g> |
| <thrift>SLASHSTAR_STYLE</thrift> |
| </mapping> |
| <excludes> |
| <exclude>**/README.md</exclude> |
| <exclude>**/src/test/resources/*.json</exclude> |
| <exclude>**/src/main/resources/*.json</exclude> |
| <exclude>jdbc/example/data/*.csv</exclude> |
| <exclude>**/*.log</exclude> |
| <exclude>licenses-binary/*</exclude> |
| <exclude>.checkstyle</exclude> |
| <exclude>NOTICE*</exclude> |
| <exclude>LICENSE*</exclude> |
| <exclude>License</exclude> |
| <exclude>asf.header</exclude> |
| <exclude>**/iotdb/data/</exclude> |
| <exclude>local-snapshots-dir/**</exclude> |
| </excludes> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> --> |
| <!-- |
| Check if all files contain Apache headers in them. |
| Ignore this plugin, we use license-maven-plugin to check apache header. |
| --> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>license-check</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <!--use `mvn cobertura:cobertura` --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>cobertura-maven-plugin</artifactId> |
| <version>2.7</version> |
| <configuration> |
| <quiet>true</quiet> |
| <formats> |
| <format>xml</format> |
| </formats> |
| <instrumentation> |
| <ignoreTrivial>true</ignoreTrivial> |
| </instrumentation> |
| <check/> |
| </configuration> |
| <executions> |
| <execution> |
| <id>check</id> |
| <!-- skip when executing 'mvn clean test' --> |
| <!-- <phase>test</phase> --> |
| <goals> |
| <goal>cobertura</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>au.com.acegi</groupId> |
| <artifactId>xml-format-maven-plugin</artifactId> |
| <version>3.0.7</version> |
| <executions> |
| <execution> |
| <id>xml-format</id> |
| <phase>compile</phase> |
| <goals> |
| <goal>xml-format</goal> |
| </goals> |
| <configuration> |
| <!-- configure your formatting preferences here (see link below) --> |
| <indentSize>4</indentSize> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- |
| Generate the legally required text files in the jars |
| --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>process-resource-bundles</id> |
| <goals> |
| <goal>process</goal> |
| </goals> |
| <configuration> |
| <resourceBundles> |
| <!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} --> |
| <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle> |
| <!-- Will generate META-INF/DISCLAIMER --> |
| <resourceBundle>org.apache:apache-incubator-disclaimer-resource-bundle:1.1</resourceBundle> |
| </resourceBundles> |
| <!-- Content in this directory will be appended to generated resources --> |
| <appendedResourcesDirectory>${basedir}/src/remote-resources</appendedResourcesDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| <profiles> |
| <!-- |
| A set of profiles defining the different properties needed to download and run thrift |
| They are automatically activated depending on the OS you are using. |
| --> |
| <profile> |
| <id>windows</id> |
| <activation> |
| <os> |
| <family>windows</family> |
| </os> |
| </activation> |
| <properties> |
| <thrift.download-url>http://artfiles.org/apache.org/thrift/${thrift.version}/thrift-${thrift.version}.exe</thrift.download-url> |
| <thrift.executable>thrift-${thrift.version}-win-x86_64.exe</thrift.executable> |
| <thrift.skip-making-executable>true</thrift.skip-making-executable> |
| <thrift.exec-cmd.executable>echo</thrift.exec-cmd.executable> |
| <thrift.exec-cmd.args>"Do nothing"</thrift.exec-cmd.args> |
| </properties> |
| </profile> |
| <!-- Has to be listed before "mac" as it seems a mac is both "mac" and "unix" --> |
| <profile> |
| <id>unix</id> |
| <activation> |
| <os> |
| <family>unix</family> |
| </os> |
| </activation> |
| <properties> |
| <thrift.download-url>https://github.com/ccascone/mvn-thrift-compiler/raw/1.0_${thrift.version}/exe/thrift-linux-x86_64.exe</thrift.download-url> |
| <thrift.executable>thrift-${thrift.version}-unix-x86_64</thrift.executable> |
| <thrift.skip-making-executable>false</thrift.skip-making-executable> |
| <thrift.exec-cmd.executable>chmod</thrift.exec-cmd.executable> |
| <thrift.exec-cmd.args>+x ${project.build.directory}/tools/${thrift.executable}</thrift.exec-cmd.args> |
| </properties> |
| </profile> |
| <profile> |
| <id>mac</id> |
| <activation> |
| <os> |
| <family>mac</family> |
| </os> |
| </activation> |
| <properties> |
| <thrift.download-url>https://github.com/ccascone/mvn-thrift-compiler/raw/1.0_${thrift.version}/exe/thrift-osx-x86_64.exe</thrift.download-url> |
| <thrift.executable>thrift-${thrift.version}-osx-x86_64</thrift.executable> |
| <thrift.skip-making-executable>false</thrift.skip-making-executable> |
| <thrift.exec-cmd.executable>chmod</thrift.exec-cmd.executable> |
| <thrift.exec-cmd.args>+x ${project.build.directory}/tools/${thrift.executable}</thrift.exec-cmd.args> |
| </properties> |
| </profile> |
| <!-- Some APIs were removed in Java 11, so we need to add replacements --> |
| <profile> |
| <id>java-11-and-above</id> |
| <activation> |
| <!-- This needs to be updated as soon as Java 20 is shipped --> |
| <jdk>[11,20)</jdk> |
| </activation> |
| <dependencies> |
| <!-- for jdk-11 --> |
| <dependency> |
| <groupId>javax.annotation</groupId> |
| <artifactId>javax.annotation-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>javax.xml.bind</groupId> |
| <artifactId>jaxb-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jaxb</groupId> |
| <artifactId>jaxb-runtime</artifactId> |
| </dependency> |
| </dependencies> |
| </profile> |
| <!-- |
| Self activating profile, that activates itself as soon as a "src/main/thrift" directory is found. |
| The different plugins here download the thrift executable matching the current os, make that |
| executable (on mac and unix/linux) and run the code generation. |
| |
| Note to the Download: The download-maven-plugin checks if a resource is previously downloaded |
| and only downloads each file once. It caches downloaded files in: |
| {maven local repo}/.cache/download-maven-plugin |
| --> |
| <profile> |
| <id>thrift-generation</id> |
| <activation> |
| <file> |
| <exists>src/main/thrift</exists> |
| </file> |
| </activation> |
| <properties> |
| <thrift.exec.absolute.path>${project.build.directory}/tools/${thrift.executable}</thrift.exec.absolute.path> |
| </properties> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>com.googlecode.maven-download-plugin</groupId> |
| <artifactId>download-maven-plugin</artifactId> |
| <version>1.4.0</version> |
| <executions> |
| <execution> |
| <id>get-thrift-executable</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>wget</goal> |
| </goals> |
| <configuration> |
| <url>${thrift.download-url}</url> |
| <outputDirectory>${project.build.directory}/tools</outputDirectory> |
| <outputFileName>${thrift.executable}</outputFileName> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>1.6.0</version> |
| <executions> |
| <execution> |
| <id>make-thrift-executable-executable</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| <configuration> |
| <skip>${thrift.skip-making-executable}</skip> |
| <executable>${thrift.exec-cmd.executable}</executable> |
| <commandlineArgs>${thrift.exec-cmd.args}</commandlineArgs> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.thrift.tools</groupId> |
| <artifactId>maven-thrift-plugin</artifactId> |
| <version>0.1.11</version> |
| <executions> |
| <execution> |
| <id>generate-thrift-sources-java</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>compile</goal> |
| </goals> |
| <configuration> |
| <generator>java</generator> |
| <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable> |
| <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot> |
| </configuration> |
| </execution> |
| <execution> |
| <id>generate-thrift-sources-python</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>compile</goal> |
| </goals> |
| <configuration> |
| <generator>py</generator> |
| <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable> |
| <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot> |
| <outputDirectory>${project.build.directory}/generated-sources-python</outputDirectory> |
| </configuration> |
| </execution> |
| <execution> |
| <id>generate-thrift-sources-go</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>compile</goal> |
| </goals> |
| <configuration> |
| <generator>go</generator> |
| <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable> |
| <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot> |
| <outputDirectory>${project.build.directory}/generated-sources-go</outputDirectory> |
| </configuration> |
| </execution> |
| <execution> |
| <id>generate-thrift-sources-cpp</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>compile</goal> |
| </goals> |
| <configuration> |
| <generator>cpp</generator> |
| <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable> |
| <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot> |
| <outputDirectory>${project.build.directory}/generated-sources-cpp</outputDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <!-- Make sure the source assembly has the right name (includes "incubating") --> |
| <profile> |
| <id>apache-release</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-assembly-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>source-release-assembly</id> |
| <phase>package</phase> |
| <goals> |
| <goal>single</goal> |
| </goals> |
| <!-- heads up: combine.self in the following is highlighted |
| as an error in Eclipse's xml editor view. |
| Just ignore that. |
| See https://issues.apache.org/jira/browse/MNG-5454 sigh. |
| --> |
| <configuration combine.self="append"> |
| <finalName>apache-iotdb-${project.version}-incubating</finalName> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- |
| Create SHA512 checksum files for the release artifacts. |
| --> |
| <plugin> |
| <groupId>net.nicoulaj.maven.plugins</groupId> |
| <artifactId>checksum-maven-plugin</artifactId> |
| <version>1.8</version> |
| <executions> |
| <execution> |
| <id>sign-source-release</id> |
| <phase>package</phase> |
| <goals> |
| <goal>files</goal> |
| </goals> |
| <configuration> |
| <algorithms> |
| <algorithm>SHA-512</algorithm> |
| </algorithms> |
| <fileSets> |
| <fileSet> |
| <directory>${project.build.directory}</directory> |
| <includes> |
| <include>apache-iotdb-${project.version}-incubating-source-release.zip</include> |
| </includes> |
| </fileSet> |
| </fileSets> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| </profiles> |
| </project> |