1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
3 license agreements. See the NOTICE file distributed with this work for additional
4 information regarding copyright ownership. The ASF licenses this file to
5 You under the Apache License, Version 2.0 (the "License"); you may not use
6 this file except in compliance with the License. You may obtain a copy of
7 the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
8 by applicable law or agreed to in writing, software distributed under the
9 License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
10 OF ANY KIND, either express or implied. See the License for the specific
11 language governing permissions and limitations under the License. -->
12 <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">
13 <modelVersion>4.0.0</modelVersion>
16 <groupId>org.apache
</groupId>
17 <artifactId>apache
</artifactId>
21 <groupId>org.apache.arrow
</groupId>
22 <artifactId>arrow-java-root
</artifactId>
23 <version>6.0.1</version>
24 <packaging>pom
</packaging>
26 <name>Apache Arrow Java Root POM
</name>
27 <description>Apache Arrow is open source, in-memory columnar data structures and low-overhead messaging
</description>
28 <url>https://arrow.apache.org/
</url>
31 <target.gen.source.path
>${project.build.directory}/generated-sources
</target.gen.source.path
>
32 <dep.junit.platform.version
>1.4.0</dep.junit.platform.version
>
33 <dep.junit.jupiter.version
>5.4.0</dep.junit.jupiter.version
>
34 <dep.slf4j.version
>1.7.25</dep.slf4j.version
>
35 <dep.guava.version
>30.1.1-jre
</dep.guava.version
>
36 <dep.netty.version
>4.1.68.Final
</dep.netty.version
>
37 <dep.jackson.version
>2.11.4</dep.jackson.version
>
38 <dep.hadoop.version
>2.7.1</dep.hadoop.version
>
39 <dep.fbs.version
>1.12.0</dep.fbs.version
>
40 <dep.avro.version
>1.10.0</dep.avro.version
>
41 <arrow.vector.classifier
/>
42 <forkCount>2</forkCount>
43 <checkstyle.failOnViolation
>true
</checkstyle.failOnViolation
>
44 <errorprone.javac.version
>9+
181-r4173-
1</errorprone.javac.version
>
48 <connection>scm:git:https://github.com/apache/arrow.git
</connection>
49 <developerConnection>scm:git:https://github.com/apache/arrow.git
</developerConnection>
50 <url>https://github.com/apache/arrow
</url>
51 <tag>apache-arrow-
2.0.0</tag>
56 <name>Developer List
</name>
57 <subscribe>dev-subscribe@arrow.apache.org
</subscribe>
58 <unsubscribe>dev-unsubscribe@arrow.apache.org
</unsubscribe>
59 <post>dev@arrow.apache.org
</post>
60 <archive>https://mail-archives.apache.org/mod_mbox/arrow-dev/
</archive>
63 <name>Commits List
</name>
64 <subscribe>commits-subscribe@arrow.apache.org
</subscribe>
65 <unsubscribe>commits-unsubscribe@arrow.apache.org
</unsubscribe>
66 <post>commits@arrow.apache.org
</post>
67 <archive>https://mail-archives.apache.org/mod_mbox/arrow-commits/
</archive>
70 <name>Issues List
</name>
71 <subscribe>issues-subscribe@arrow.apache.org
</subscribe>
72 <unsubscribe>issues-unsubscribe@arrow.apache.org
</unsubscribe>
73 <archive>https://mail-archives.apache.org/mod_mbox/arrow-issues/
</archive>
83 <url>https://issues.apache.org/jira/browse/arrow
</url>
90 <groupId>org.apache.rat
</groupId>
91 <artifactId>apache-rat-plugin
</artifactId>
95 <phase>validate
</phase>
102 <excludeSubProjects>false
</excludeSubProjects>
104 <exclude>**/dependency-reduced-pom.xml
</exclude>
105 <exclude>**/*.log
</exclude>
106 <exclude>**/*.css
</exclude>
107 <exclude>**/*.js
</exclude>
108 <exclude>**/*.md
</exclude>
109 <exclude>**/*.eps
</exclude>
110 <exclude>**/*.json
</exclude>
111 <exclude>**/*.seq
</exclude>
112 <exclude>**/*.parquet
</exclude>
113 <exclude>**/*.sql
</exclude>
114 <exclude>**/git.properties
</exclude>
115 <exclude>**/*.csv
</exclude>
116 <exclude>**/*.csvh
</exclude>
117 <exclude>**/*.csvh-test
</exclude>
118 <exclude>**/*.tsv
</exclude>
119 <exclude>**/*.txt
</exclude>
120 <exclude>**/*.ssv
</exclude>
121 <exclude>**/arrow-*.conf
</exclude>
122 <exclude>**/.buildpath
</exclude>
123 <exclude>**/*.proto
</exclude>
124 <exclude>**/*.fmpp
</exclude>
125 <exclude>**/target/**
</exclude>
126 <exclude>**/*.tdd
</exclude>
127 <exclude>**/*.project
</exclude>
128 <exclude>**/TAGS
</exclude>
129 <exclude>**/*.checkstyle
</exclude>
130 <exclude>**/.classpath
</exclude>
131 <exclude>**/.factorypath
</exclude>
132 <exclude>**/.settings/**
</exclude>
133 <exclude>.*/**
</exclude>
134 <exclude>**/*.patch
</exclude>
135 <exclude>**/*.pb.cc
</exclude>
136 <exclude>**/*.pb.h
</exclude>
137 <exclude>**/*.linux
</exclude>
138 <exclude>**/client/build/**
</exclude>
139 <exclude>**/*.tbl
</exclude>
140 <exclude>**/*.iml
</exclude>
146 <groupId>org.apache.maven.plugins
</groupId>
147 <artifactId>maven-jar-plugin
</artifactId>
150 <exclude>**/logging.properties
</exclude>
151 <exclude>**/logback-test.xml
</exclude>
152 <exclude>**/logback.out.xml
</exclude>
153 <exclude>**/logback.xml
</exclude>
158 <addDefaultImplementationEntries>true
</addDefaultImplementationEntries>
159 <addDefaultSpecificationEntries>true
</addDefaultSpecificationEntries>
162 <Extension-Name>org.apache.arrow
</Extension-Name>
163 <Built-By>${username}
</Built-By>
164 <url>https://arrow.apache.org/
</url>
171 <goal>test-jar
</goal>
174 <skipIfEmpty>true
</skipIfEmpty>
182 <groupId>org.apache.maven.plugins
</groupId>
183 <artifactId>maven-resources-plugin
</artifactId>
185 <encoding>UTF-
8</encoding>
189 <groupId>org.apache.maven.plugins
</groupId>
190 <artifactId>maven-compiler-plugin
</artifactId>
194 <maxmem>2048m
</maxmem>
195 <useIncrementalCompilation>false
</useIncrementalCompilation>
200 <artifactId>maven-enforcer-plugin
</artifactId>
203 <id>validate_java_and_maven_version
</id>
204 <phase>verify
</phase>
208 <inherited>false
</inherited>
211 <requireMavenVersion>
212 <version>[
3.3.0,
4)
</version>
213 </requireMavenVersion>
218 <id>avoid_bad_dependencies
</id>
219 <phase>verify
</phase>
227 <exclude>commons-logging
</exclude>
228 <exclude>javax.servlet:servlet-api
</exclude>
229 <exclude>org.mortbay.jetty:servlet-api
</exclude>
230 <exclude>org.mortbay.jetty:servlet-api-
2.5</exclude>
231 <exclude>log4j:log4j
</exclude>
233 </bannedDependencies>
240 <groupId>pl.project13.maven
</groupId>
241 <artifactId>git-commit-id-plugin
</artifactId>
242 <version>2.2.2</version>
246 <inherited>true
</inherited>
248 <goal>revision
</goal>
251 <generateGitPropertiesFilename>target/classes/git.properties
</generateGitPropertiesFilename>
255 <id>for-source-tarball
</id>
257 <goal>revision
</goal>
259 <inherited>false
</inherited>
261 <generateGitPropertiesFilename>./git.properties
</generateGitPropertiesFilename>
267 <dateFormat>dd.MM.yyyy '@' HH:mm:ss z
</dateFormat>
268 <verbose>false
</verbose>
269 <skipPoms>false
</skipPoms>
270 <generateGitPropertiesFile>true
</generateGitPropertiesFile>
271 <failOnNoGitDirectory>false
</failOnNoGitDirectory>
274 <always>false
</always>
276 <dirty>-dirty
</dirty>
277 <forceLongFormat>true
</forceLongFormat>
283 <groupId>org.apache.maven.plugins
</groupId>
284 <artifactId>maven-checkstyle-plugin
</artifactId>
285 <version>3.1.0</version>
288 <groupId>com.puppycrawl.tools
</groupId>
289 <artifactId>checkstyle
</artifactId>
290 <version>8.19</version>
293 <groupId>com.google.guava
</groupId>
294 <artifactId>guava
</artifactId>
295 <version>${dep.guava.version}
</version>
298 <groupId>org.slf4j
</groupId>
299 <artifactId>jcl-over-slf4j
</artifactId>
300 <version>1.7.5</version>
306 <phase>validate
</phase>
313 <configLocation>dev/checkstyle/checkstyle.xml
</configLocation>
314 <headerLocation>dev/checkstyle/checkstyle.license
</headerLocation>
315 <suppressionsLocation>dev/checkstyle/suppressions.xml
</suppressionsLocation>
316 <includeTestSourceDirectory>true
</includeTestSourceDirectory>
317 <encoding>UTF-
8</encoding>
318 <consoleOutput>true
</consoleOutput>
319 <failsOnError>${checkstyle.failOnViolation}
</failsOnError>
320 <failOnViolation>${checkstyle.failOnViolation}
</failOnViolation>
321 <violationSeverity>warning
</violationSeverity>
323 <format>html
</format>
324 <outputFile>${project.build.directory}/test/checkstyle-errors.xml
</outputFile>
325 <linkXRef>false
</linkXRef>
329 <groupId>org.apache.maven.plugins
</groupId>
330 <artifactId>maven-dependency-plugin
</artifactId>
334 <phase>verify
</phase>
336 <goal>analyze-only
</goal>
339 <ignoreNonCompile>true
</ignoreNonCompile>
340 <failOnWarning>true
</failOnWarning>
341 <ignoredDependencies>
342 <!-- source annotations (not kept in compiled code) -->
343 <ignoredDependency>javax.annotation:javax.annotation-api:*
</ignoredDependency>
344 </ignoredDependencies>
354 <groupId>org.apache.maven.plugins
</groupId>
355 <artifactId>maven-dependency-plugin
</artifactId>
356 <version>3.0.1</version>
359 <groupId>org.apache.rat
</groupId>
360 <artifactId>apache-rat-plugin
</artifactId>
361 <version>0.13</version>
364 <groupId>org.apache.maven.plugins
</groupId>
365 <artifactId>maven-resources-plugin
</artifactId>
366 <version>2.6</version>
369 <groupId>org.apache.maven.plugins
</groupId>
370 <artifactId>maven-compiler-plugin
</artifactId>
371 <version>3.6.2</version>
373 <annotationProcessorPaths>
375 <groupId>org.immutables
</groupId>
376 <artifactId>value
</artifactId>
377 <version>2.8.2</version>
379 </annotationProcessorPaths>
383 <artifactId>maven-enforcer-plugin
</artifactId>
384 <version>3.0.0-M2
</version>
387 <artifactId>maven-surefire-plugin
</artifactId>
388 <version>3.0.0-M3
</version>
390 <enableAssertions>true
</enableAssertions>
391 <childDelegation>true
</childDelegation>
392 <forkCount>${forkCount}
</forkCount>
393 <reuseForks>true
</reuseForks>
394 <systemPropertyVariables>
395 <java.io.tmpdir
>${project.build.directory}
</java.io.tmpdir
>
396 <io.netty.tryReflectionSetAccessible
>true
</io.netty.tryReflectionSetAccessible
>
397 <user.timezone
>UTC
</user.timezone
>
398 <!-- Note: changing the below configuration might increase the max allocation size for a vector
399 which in turn can cause OOM. -->
400 <arrow.vector.max_allocation_bytes
>1048576</arrow.vector.max_allocation_bytes
>
401 </systemPropertyVariables>
405 <artifactId>maven-failsafe-plugin
</artifactId>
406 <version>3.0.0-M3
</version>
408 <systemPropertyVariables>
409 <java.io.tmpdir
>${project.build.directory}
</java.io.tmpdir
>
410 <io.netty.tryReflectionSetAccessible
>true
</io.netty.tryReflectionSetAccessible
>
411 <user.timezone
>UTC
</user.timezone
>
412 </systemPropertyVariables>
416 <groupId>org.jacoco
</groupId>
417 <artifactId>jacoco-maven-plugin
</artifactId>
418 <version>0.8.7</version>
421 <!--This plugin's configuration is used to store Eclipse m2e settings
422 only. It has no influence on the Maven build itself. -->
424 <groupId>org.eclipse.m2e
</groupId>
425 <artifactId>lifecycle-mapping
</artifactId>
426 <version>1.0.0</version>
428 <lifecycleMappingMetadata>
431 <pluginExecutionFilter>
432 <groupId>org.apache.maven.plugins
</groupId>
433 <artifactId>maven-antrun-plugin
</artifactId>
434 <versionRange>[
1.6,)
</versionRange>
438 </pluginExecutionFilter>
444 <pluginExecutionFilter>
445 <groupId>org.apache.maven.plugins
</groupId>
446 <artifactId>maven-enforcer-plugin
</artifactId>
447 <versionRange>[
1.2,)
</versionRange>
451 </pluginExecutionFilter>
457 <pluginExecutionFilter>
458 <groupId>org.apache.maven.plugins
</groupId>
460 maven-remote-resources-plugin
462 <versionRange>[
1.1,)
</versionRange>
466 </pluginExecutionFilter>
472 <pluginExecutionFilter>
473 <groupId>org.apache.rat
</groupId>
474 <artifactId>apache-rat-plugin
</artifactId>
475 <versionRange>[
0.10,)
</versionRange>
479 </pluginExecutionFilter>
485 <pluginExecutionFilter>
486 <groupId>org.apache.maven.plugins
</groupId>
487 <artifactId>maven-checkstyle-plugin
</artifactId>
488 <versionRange>[
0,)
</versionRange>
492 </pluginExecutionFilter>
498 </lifecycleMappingMetadata>
505 <dependencyManagement>
508 <groupId>com.google.flatbuffers
</groupId>
509 <artifactId>flatbuffers-java
</artifactId>
510 <version>${dep.fbs.version}
</version>
513 <groupId>com.google.guava
</groupId>
514 <artifactId>guava
</artifactId>
515 <version>${dep.guava.version}
</version>
518 <groupId>io.netty
</groupId>
519 <artifactId>netty-handler
</artifactId>
520 <version>${dep.netty.version}
</version>
523 <groupId>io.netty
</groupId>
524 <artifactId>netty-buffer
</artifactId>
525 <version>${dep.netty.version}
</version>
528 <groupId>io.netty
</groupId>
529 <artifactId>netty-common
</artifactId>
530 <version>${dep.netty.version}
</version>
533 <groupId>com.fasterxml.jackson.core
</groupId>
534 <artifactId>jackson-core
</artifactId>
535 <version>${dep.jackson.version}
</version>
538 <groupId>com.fasterxml.jackson.core
</groupId>
539 <artifactId>jackson-annotations
</artifactId>
540 <version>${dep.jackson.version}
</version>
543 <groupId>com.fasterxml.jackson.core
</groupId>
544 <artifactId>jackson-databind
</artifactId>
545 <version>${dep.jackson.version}
</version>
548 <groupId>com.google.code.findbugs
</groupId>
549 <artifactId>jsr305
</artifactId>
550 <version>3.0.2</version>
553 <groupId>org.slf4j
</groupId>
554 <artifactId>slf4j-api
</artifactId>
555 <version>${dep.slf4j.version}
</version>
558 <groupId>javax.annotation
</groupId>
559 <artifactId>javax.annotation-api
</artifactId>
560 <version>1.3.2</version>
563 <groupId>org.immutables
</groupId>
564 <artifactId>value
</artifactId>
565 <version>2.8.2</version>
566 <scope>provided
</scope>
569 </dependencyManagement>
572 <!-- Test Dependencies -->
574 <groupId>org.slf4j
</groupId>
575 <artifactId>jul-to-slf4j
</artifactId>
576 <version>${dep.slf4j.version}
</version>
581 <groupId>org.slf4j
</groupId>
582 <artifactId>jcl-over-slf4j
</artifactId>
583 <version>${dep.slf4j.version}
</version>
588 <groupId>org.slf4j
</groupId>
589 <artifactId>log4j-over-slf4j
</artifactId>
590 <version>${dep.slf4j.version}
</version>
596 <groupId>org.junit.platform
</groupId>
597 <artifactId>junit-platform-runner
</artifactId>
598 <version>${dep.junit.platform.version}
</version>
602 <groupId>org.junit.jupiter
</groupId>
603 <artifactId>junit-jupiter-engine
</artifactId>
604 <version>${dep.junit.jupiter.version}
</version>
608 <groupId>org.junit.jupiter
</groupId>
609 <artifactId>junit-jupiter-api
</artifactId>
610 <version>${dep.junit.jupiter.version}
</version>
614 <groupId>org.junit.vintage
</groupId>
615 <artifactId>junit-vintage-engine
</artifactId>
616 <version>${dep.junit.jupiter.version}
</version>
619 <!-- Use to keep older tests running -->
621 <groupId>junit
</groupId>
622 <artifactId>junit
</artifactId>
623 <version>4.12</version>
627 <groupId>org.mockito
</groupId>
628 <artifactId>mockito-junit-jupiter
</artifactId>
629 <version>2.25.1</version>
633 <groupId>ch.qos.logback
</groupId>
634 <artifactId>logback-classic
</artifactId>
635 <version>1.2.3</version>
639 <groupId>de.huxhorn.lilith
</groupId>
640 <artifactId>de.huxhorn.lilith.logback.appender.multiplex-classic
</artifactId>
641 <version>0.9.44</version>
650 <groupId>org.apache.maven.plugins
</groupId>
651 <artifactId>maven-javadoc-plugin
</artifactId>
652 <version>3.0.0-M1
</version>
654 <reportSet><!-- by default, id = "default" -->
655 <reports><!-- select non-aggregate reports -->
656 <report>javadoc
</report>
657 <report>test-javadoc
</report>
660 <reportSet><!-- aggregate reportSet, to define in poms having modules -->
662 <inherited>false
</inherited><!-- don't run aggregate in child modules -->
664 <report>aggregate
</report>
673 <module>format
</module>
674 <module>memory
</module>
675 <module>vector
</module>
676 <module>tools
</module>
677 <module>adapter/jdbc
</module>
678 <module>plasma
</module>
679 <module>flight/flight-core
</module>
680 <module>flight/flight-grpc
</module>
681 <module>performance
</module>
682 <module>algorithm
</module>
683 <module>adapter/avro
</module>
684 <module>compression
</module>
694 <doclint>none
</doclint>
695 <additionalparam>-Xdoclint:none
</additionalparam>
700 <!-- C data interface depends on building a native library -->
701 <id>arrow-c-data
</id>
708 <!-- orc java depends on arrow cpp, and arrow cpp isn't enabled by default yet -->
711 <!-- these have dependency on cpp -->
712 <module>adapter/orc
</module>
713 <module>gandiva
</module>
714 <module>dataset
</module>
719 <!-- Use the version of arrow-vector that shades flatbuffers and packages format -->
720 <id>shade-flatbuffers
</id>
722 <arrow.vector.classifier
>shade-format-flatbuffers
</arrow.vector.classifier
>
729 Do not activate Error Prone while running with Eclipse/M2E as it causes incompatibilities
730 with other annotation processors.
731 See https://github.com/jbosstools/m2e-apt/issues/62 for details
735 <name>!m2e.version
</name>
741 <groupId>org.apache.maven.plugins
</groupId>
742 <artifactId>maven-compiler-plugin
</artifactId>
744 <compilerArgs combine.
children=
"append">
745 <arg>-XDcompilePolicy=simple
</arg>
746 <arg>-Xplugin:ErrorProne
</arg>
748 <annotationProcessorPaths combine.
children=
"append">
750 <groupId>com.google.errorprone
</groupId>
751 <artifactId>error_prone_core
</artifactId>
752 <version>2.4.0</version>
754 </annotationProcessorPaths>
762 <id>error-prone-jdk8
</id>
763 <!-- using github.com/google/error-prone-javac is required when running on JDK 8 -->
767 <name>!m2e.version
</name>
773 <groupId>org.apache.maven.plugins
</groupId>
774 <artifactId>maven-compiler-plugin
</artifactId>
777 <compilerArgs combine.
children=
"append">
778 <arg>-J-Xbootclasspath/p:${settings.localRepository}/com/google/errorprone/javac/${errorprone.javac.version}/javac-${errorprone.javac.version}.jar
</arg>
787 <id>code-coverage
</id>
789 Use `mvn -Pcode-coverage install site` to capture and generate the code coverage report
790 Alternatively, if you do not want to generate the full set of reports, use:
791 `mvn -Pcode-coverage install org.jacoco:jacoco-maven-plugin:report org.jacoco:jacoco-maven-plugin:report-integration`
793 Add `-Pintegration-tests` to the previous commandline to also capture integration tests coverage
798 <groupId>org.jacoco
</groupId>
799 <artifactId>jacoco-maven-plugin
</artifactId>
802 <id>default-prepare-agent
</id>
804 <goal>prepare-agent
</goal>
808 <id>default-prepare-agent-integration
</id>
810 <goal>prepare-agent-integration
</goal>
820 <groupId>org.jacoco
</groupId>
821 <artifactId>jacoco-maven-plugin
</artifactId>
822 <version>0.8.7</version>
825 <inherited>false
</inherited><!-- don't run aggregate in child modules -->
827 <!-- select non-aggregate reports -->
828 <report>report
</report>