| |
| <!DOCTYPE html> |
| |
| |
| <html lang="en" data-content_root="../../" > |
| |
| <head> |
| <meta charset="utf-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" /> |
| |
| <title>Building Arrow Java — Apache Arrow v23.0.0.dev43</title> |
| |
| |
| |
| <script data-cfasync="false"> |
| document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; |
| document.documentElement.dataset.theme = localStorage.getItem("theme") || ""; |
| </script> |
| <!-- |
| this give us a css class that will be invisible only if js is disabled |
| --> |
| <noscript> |
| <style> |
| .pst-js-only { display: none !important; } |
| |
| </style> |
| </noscript> |
| |
| <!-- Loaded before other Sphinx assets --> |
| <link href="../../_static/styles/theme.css?digest=8878045cc6db502f8baf" rel="stylesheet" /> |
| <link href="../../_static/styles/pydata-sphinx-theme.css?digest=8878045cc6db502f8baf" rel="stylesheet" /> |
| |
| <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=03e43079" /> |
| <link rel="stylesheet" type="text/css" href="../../_static/copybutton.css?v=76b2166b" /> |
| <link rel="stylesheet" type="text/css" href="../../_static/sphinx-design.min.css?v=95c83b7e" /> |
| <link rel="stylesheet" type="text/css" href="../../_static/theme_overrides.css?v=8dcd28dc" /> |
| |
| <!-- So that users can add custom icons --> |
| <script src="../../_static/scripts/fontawesome.js?digest=8878045cc6db502f8baf"></script> |
| <!-- Pre-loaded scripts that we'll load fully later --> |
| <link rel="preload" as="script" href="../../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" /> |
| <link rel="preload" as="script" href="../../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" /> |
| |
| <script src="../../_static/documentation_options.js?v=86a95840"></script> |
| <script src="../../_static/doctools.js?v=9bcbadda"></script> |
| <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> |
| <script src="../../_static/clipboard.min.js?v=a7894cd8"></script> |
| <script src="../../_static/copybutton.js?v=3bb21c8c"></script> |
| <script src="../../_static/design-tabs.js?v=f930bc37"></script> |
| <script>DOCUMENTATION_OPTIONS.pagename = 'developers/java/building';</script> |
| <script> |
| DOCUMENTATION_OPTIONS.theme_version = '0.16.1'; |
| DOCUMENTATION_OPTIONS.theme_switcher_json_url = '/docs/_static/versions.json'; |
| DOCUMENTATION_OPTIONS.theme_switcher_version_match = 'dev/'; |
| DOCUMENTATION_OPTIONS.show_version_warning_banner = |
| true; |
| </script> |
| <link rel="canonical" href="https://arrow.apache.org/docs/developers/java/building.html" /> |
| <link rel="icon" href="../../_static/favicon.ico"/> |
| <link rel="index" title="Index" href="../../genindex.html" /> |
| <link rel="search" title="Search" href="../../search.html" /> |
| <link rel="next" title="Development Guidelines" href="development.html" /> |
| <link rel="prev" title="Java Development" href="index.html" /> |
| |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <meta name="docsearch:language" content="en"/> |
| <meta name="docsearch:version" content="23.0.0.dev43" /> |
| |
| <!-- Matomo --> |
| <script> |
| var _paq = window._paq = window._paq || []; |
| /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ |
| /* We explicitly disable cookie tracking to avoid privacy issues */ |
| _paq.push(['disableCookies']); |
| _paq.push(['trackPageView']); |
| _paq.push(['enableLinkTracking']); |
| (function() { |
| var u="https://analytics.apache.org/"; |
| _paq.push(['setTrackerUrl', u+'matomo.php']); |
| _paq.push(['setSiteId', '20']); |
| var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; |
| g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); |
| })(); |
| </script> |
| <!-- End Matomo Code --> |
| |
| </head> |
| |
| |
| <body data-bs-spy="scroll" data-bs-target=".bd-toc-nav" data-offset="180" data-bs-root-margin="0px 0px -60%" data-default-mode=""> |
| |
| |
| |
| <div id="pst-skip-link" class="skip-link d-print-none"><a href="#main-content">Skip to main content</a></div> |
| |
| <div id="pst-scroll-pixel-helper"></div> |
| |
| <button type="button" class="btn rounded-pill" id="pst-back-to-top"> |
| <i class="fa-solid fa-arrow-up"></i>Back to top</button> |
| |
| |
| <dialog id="pst-search-dialog"> |
| |
| <form class="bd-search d-flex align-items-center" |
| action="../../search.html" |
| method="get"> |
| <i class="fa-solid fa-magnifying-glass"></i> |
| <input type="search" |
| class="form-control" |
| name="q" |
| placeholder="Search the docs ..." |
| aria-label="Search the docs ..." |
| autocomplete="off" |
| autocorrect="off" |
| autocapitalize="off" |
| spellcheck="false"/> |
| <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span> |
| </form> |
| </dialog> |
| |
| <div class="pst-async-banner-revealer d-none"> |
| <aside id="bd-header-version-warning" class="d-none d-print-none" aria-label="Version warning"></aside> |
| </div> |
| |
| |
| <header class="bd-header navbar navbar-expand-lg bd-navbar d-print-none"> |
| <div class="bd-header__inner bd-page-width"> |
| <button class="pst-navbar-icon sidebar-toggle primary-toggle" aria-label="Site navigation"> |
| <span class="fa-solid fa-bars"></span> |
| </button> |
| |
| |
| <div class=" navbar-header-items__start"> |
| |
| <div class="navbar-item"> |
| |
| |
| |
| |
| |
| <a class="navbar-brand logo" href="../../index.html"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <img src="../../_static/arrow.png" class="logo__image only-light" alt="Apache Arrow v23.0.0.dev43 - Home"/> |
| <img src="../../_static/arrow-dark.png" class="logo__image only-dark pst-js-only" alt="Apache Arrow v23.0.0.dev43 - Home"/> |
| |
| |
| </a></div> |
| |
| </div> |
| |
| <div class=" navbar-header-items"> |
| |
| <div class="me-auto navbar-header-items__center"> |
| |
| <div class="navbar-item"> |
| <nav> |
| <ul class="bd-navbar-elements navbar-nav"> |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../../format/index.html"> |
| Specifications |
| </a> |
| </li> |
| |
| |
| <li class="nav-item current active"> |
| <a class="nav-link nav-internal" href="../index.html"> |
| Development |
| </a> |
| </li> |
| |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../../implementations.html"> |
| Implementations |
| </a> |
| </li> |
| |
| </ul> |
| </nav></div> |
| |
| </div> |
| |
| |
| <div class="navbar-header-items__end"> |
| |
| <div class="navbar-item navbar-persistent--container"> |
| |
| |
| <button class="btn search-button-field search-button__button pst-js-only" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip"> |
| <i class="fa-solid fa-magnifying-glass"></i> |
| <span class="search-button__default-text">Search</span> |
| <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span> |
| </button> |
| </div> |
| |
| |
| <div class="navbar-item"><div class="kapa-ai-bot"> |
| <script |
| async |
| src="https://widget.kapa.ai/kapa-widget.bundle.js" |
| data-website-id="9db461d5-ac77-4b3f-a5c5-75efa78339d2" |
| data-project-name="Apache Arrow" |
| data-project-color="#000000" |
| data-project-logo="https://arrow.apache.org/img/arrow-logo_chevrons_white-txt_black-bg.png" |
| data-modal-disclaimer="This is a custom LLM with access to all [Arrow documentation](https://arrow.apache.org/docs/). Please include the language you are using in your question, e.g., Python, C++, Java, R, etc." |
| data-consent-required="true" |
| data-user-analytics-cookie-enabled="false" |
| data-consent-screen-disclaimer="By clicking "I agree, let's chat", you consent to the use of the AI assistant in accordance with kapa.ai's [Privacy Policy](https://www.kapa.ai/content/privacy-policy). This service uses reCAPTCHA, which requires your consent to Google's [Privacy Policy](https://policies.google.com/privacy) and [Terms of Service](https://policies.google.com/terms). By proceeding, you explicitly agree to both kapa.ai's and Google's privacy policies." |
| ></script> |
| |
| </div> |
| |
| </div> |
| |
| <div class="navbar-item"> |
| <div class="version-switcher__container dropdown pst-js-only"> |
| <button id="pst-version-switcher-button-2" |
| type="button" |
| class="version-switcher__button btn btn-sm dropdown-toggle" |
| data-bs-toggle="dropdown" |
| aria-haspopup="listbox" |
| aria-controls="pst-version-switcher-list-2" |
| aria-label="Version switcher list" |
| > |
| Choose version <!-- this text may get changed later by javascript --> |
| <span class="caret"></span> |
| </button> |
| <div id="pst-version-switcher-list-2" |
| class="version-switcher__menu dropdown-menu list-group-flush py-0" |
| role="listbox" aria-labelledby="pst-version-switcher-button-2"> |
| <!-- dropdown will be populated by javascript on page load --> |
| </div> |
| </div></div> |
| |
| <div class="navbar-item"> |
| |
| <button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" aria-label="Color mode" data-bs-title="Color mode" data-bs-placement="bottom" data-bs-toggle="tooltip"> |
| <i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light" title="Light"></i> |
| <i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark" title="Dark"></i> |
| <i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto" title="System Settings"></i> |
| </button></div> |
| |
| <div class="navbar-item"><ul class="navbar-icon-links" |
| aria-label="Icon Links"> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://github.com/apache/arrow" title="GitHub" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">GitHub</span></a> |
| </li> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://www.linkedin.com/company/apache-arrow/" title="LinkedIn" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-linkedin fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">LinkedIn</span></a> |
| </li> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://bsky.app/profile/arrow.apache.org" title="BlueSky" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-bluesky fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">BlueSky</span></a> |
| </li> |
| </ul></div> |
| |
| </div> |
| |
| </div> |
| |
| |
| <div class="navbar-persistent--mobile"> |
| |
| <button class="btn search-button-field search-button__button pst-js-only" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip"> |
| <i class="fa-solid fa-magnifying-glass"></i> |
| <span class="search-button__default-text">Search</span> |
| <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span> |
| </button> |
| </div> |
| |
| |
| |
| <button class="pst-navbar-icon sidebar-toggle secondary-toggle" aria-label="On this page"> |
| <span class="fa-solid fa-outdent"></span> |
| </button> |
| |
| </div> |
| |
| </header> |
| |
| |
| <div class="bd-container"> |
| <div class="bd-container__inner bd-page-width"> |
| |
| |
| |
| <dialog id="pst-primary-sidebar-modal"></dialog> |
| <div id="pst-primary-sidebar" class="bd-sidebar-primary bd-sidebar"> |
| |
| |
| |
| <div class="sidebar-header-items sidebar-primary__section"> |
| |
| |
| <div class="sidebar-header-items__center"> |
| |
| |
| |
| <div class="navbar-item"> |
| <nav> |
| <ul class="bd-navbar-elements navbar-nav"> |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../../format/index.html"> |
| Specifications |
| </a> |
| </li> |
| |
| |
| <li class="nav-item current active"> |
| <a class="nav-link nav-internal" href="../index.html"> |
| Development |
| </a> |
| </li> |
| |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../../implementations.html"> |
| Implementations |
| </a> |
| </li> |
| |
| </ul> |
| </nav></div> |
| |
| |
| </div> |
| |
| |
| |
| <div class="sidebar-header-items__end"> |
| |
| <div class="navbar-item"><div class="kapa-ai-bot"> |
| <script |
| async |
| src="https://widget.kapa.ai/kapa-widget.bundle.js" |
| data-website-id="9db461d5-ac77-4b3f-a5c5-75efa78339d2" |
| data-project-name="Apache Arrow" |
| data-project-color="#000000" |
| data-project-logo="https://arrow.apache.org/img/arrow-logo_chevrons_white-txt_black-bg.png" |
| data-modal-disclaimer="This is a custom LLM with access to all [Arrow documentation](https://arrow.apache.org/docs/). Please include the language you are using in your question, e.g., Python, C++, Java, R, etc." |
| data-consent-required="true" |
| data-user-analytics-cookie-enabled="false" |
| data-consent-screen-disclaimer="By clicking "I agree, let's chat", you consent to the use of the AI assistant in accordance with kapa.ai's [Privacy Policy](https://www.kapa.ai/content/privacy-policy). This service uses reCAPTCHA, which requires your consent to Google's [Privacy Policy](https://policies.google.com/privacy) and [Terms of Service](https://policies.google.com/terms). By proceeding, you explicitly agree to both kapa.ai's and Google's privacy policies." |
| ></script> |
| |
| </div> |
| |
| </div> |
| |
| <div class="navbar-item"> |
| <div class="version-switcher__container dropdown pst-js-only"> |
| <button id="pst-version-switcher-button-3" |
| type="button" |
| class="version-switcher__button btn btn-sm dropdown-toggle" |
| data-bs-toggle="dropdown" |
| aria-haspopup="listbox" |
| aria-controls="pst-version-switcher-list-3" |
| aria-label="Version switcher list" |
| > |
| Choose version <!-- this text may get changed later by javascript --> |
| <span class="caret"></span> |
| </button> |
| <div id="pst-version-switcher-list-3" |
| class="version-switcher__menu dropdown-menu list-group-flush py-0" |
| role="listbox" aria-labelledby="pst-version-switcher-button-3"> |
| <!-- dropdown will be populated by javascript on page load --> |
| </div> |
| </div></div> |
| |
| <div class="navbar-item"> |
| |
| <button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" aria-label="Color mode" data-bs-title="Color mode" data-bs-placement="bottom" data-bs-toggle="tooltip"> |
| <i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light" title="Light"></i> |
| <i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark" title="Dark"></i> |
| <i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto" title="System Settings"></i> |
| </button></div> |
| |
| <div class="navbar-item"><ul class="navbar-icon-links" |
| aria-label="Icon Links"> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://github.com/apache/arrow" title="GitHub" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">GitHub</span></a> |
| </li> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://www.linkedin.com/company/apache-arrow/" title="LinkedIn" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-linkedin fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">LinkedIn</span></a> |
| </li> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://bsky.app/profile/arrow.apache.org" title="BlueSky" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-bluesky fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">BlueSky</span></a> |
| </li> |
| </ul></div> |
| |
| </div> |
| |
| </div> |
| |
| <div class="sidebar-primary-items__start sidebar-primary__section"> |
| <div class="sidebar-primary-item"> |
| <nav class="bd-docs-nav bd-links" |
| aria-label="Section Navigation"> |
| <p class="bd-links__title" role="heading" aria-level="1">Section Navigation</p> |
| <div class="bd-toc-item navbar-nav"><ul class="current nav bd-sidenav"> |
| <li class="toctree-l1"><a class="reference internal" href="../bug_reports.html">Bug reports and feature requests</a></li> |
| <li class="toctree-l1 has-children"><a class="reference internal" href="../guide/index.html">New Contributor’s Guide</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l2"><a class="reference internal" href="../guide/architectural_overview.html">Architectural Overview</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../guide/communication.html">Communication</a></li> |
| <li class="toctree-l2 has-children"><a class="reference internal" href="../guide/step_by_step/index.html">Steps in making your first PR</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/set_up.html">Set up</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/building.html">Building the Arrow libraries 🏋🏿♀️</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/finding_issues.html">Finding good first issues 🔎</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/arrow_codebase.html">Working on the Arrow codebase 🧐</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/testing.html">Testing 🧪</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/styling.html">Styling 😎</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../guide/step_by_step/pr_lifecycle.html">Lifecycle of a pull request</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l2"><a class="reference internal" href="../guide/documentation.html">Helping with documentation</a></li> |
| <li class="toctree-l2 has-children"><a class="reference internal" href="../guide/tutorials/index.html">Tutorials</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l3"><a class="reference internal" href="../guide/tutorials/python_tutorial.html">Python tutorial</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../guide/tutorials/r_tutorial.html">R tutorials</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l2"><a class="reference internal" href="../guide/resources.html">Additional information and resources</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l1"><a class="reference internal" href="../overview.html">Contributing Overview</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../reviewing.html">Reviewing contributions</a></li> |
| <li class="toctree-l1 has-children"><a class="reference internal" href="../cpp/index.html">C++ Development</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l2"><a class="reference internal" href="../cpp/building.html">Building Arrow C++</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../cpp/development.html">Development Guidelines</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../cpp/windows.html">Developing on Windows</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../cpp/emscripten.html">Cross compiling for WebAssembly with Emscripten</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../cpp/conventions.html">Conventions</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../cpp/fuzzing.html">Fuzzing Arrow C++</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../cpp/compute.html">Developing Arrow C++ Compute</a></li> |
| <li class="toctree-l2 has-children"><a class="reference internal" href="../cpp/acero.html">Developing Acero</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l3"><a class="reference internal" href="../cpp/acero/swiss_table.html">Swiss Table</a></li> |
| </ul> |
| </details></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l1 current active has-children"><a class="reference internal" href="index.html">Java Development</a><details open="open"><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul class="current"> |
| <li class="toctree-l2 current active"><a class="current reference internal" href="#">Building Arrow Java</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="development.html">Development Guidelines</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l1 has-children"><a class="reference internal" href="../python/index.html">Python Development</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l2"><a class="reference internal" href="../python/building.html">Building PyArrow</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../python/development.html">Developing PyArrow</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l1 has-children"><a class="reference internal" href="../continuous_integration/index.html">Continuous Integration</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l2"><a class="reference internal" href="../continuous_integration/overview.html">Continuous Integration</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../continuous_integration/docker.html">Running Docker Builds</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../continuous_integration/archery.html">Daily Development using Archery</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../continuous_integration/crossbow.html">Packaging and Testing with Crossbow</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l1"><a class="reference internal" href="../benchmarks.html">Benchmarks</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../documentation.html">Building the Documentation</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../release.html">Release Management Guide</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../release_verification.html">Release Verification Process</a></li> |
| </ul> |
| </div> |
| </nav></div> |
| </div> |
| |
| |
| <div class="sidebar-primary-items__end sidebar-primary__section"> |
| <div class="sidebar-primary-item"> |
| <div id="ethical-ad-placement" |
| class="flat" |
| data-ea-publisher="readthedocs" |
| data-ea-type="readthedocs-sidebar" |
| data-ea-manual="true"> |
| </div></div> |
| </div> |
| |
| |
| </div> |
| |
| <main id="main-content" class="bd-main" role="main"> |
| |
| |
| <div class="bd-content"> |
| <div class="bd-article-container"> |
| |
| <div class="bd-header-article d-print-none"> |
| <div class="header-article-items header-article__inner"> |
| |
| <div class="header-article-items__start"> |
| |
| <div class="header-article-item"> |
| |
| <nav aria-label="Breadcrumb" class="d-print-none"> |
| <ul class="bd-breadcrumbs"> |
| |
| <li class="breadcrumb-item breadcrumb-home"> |
| <a href="../../index.html" class="nav-link" aria-label="Home"> |
| <i class="fa-solid fa-home"></i> |
| </a> |
| </li> |
| |
| <li class="breadcrumb-item"><a href="../index.html" class="nav-link">Development</a></li> |
| |
| |
| <li class="breadcrumb-item"><a href="index.html" class="nav-link">Java Development</a></li> |
| |
| <li class="breadcrumb-item active" aria-current="page"><span class="ellipsis">Building Arrow Java</span></li> |
| </ul> |
| </nav> |
| </div> |
| |
| </div> |
| |
| |
| </div> |
| </div> |
| |
| |
| |
| |
| <div id="searchbox"></div> |
| <article class="bd-article"> |
| |
| <section id="building-arrow-java"> |
| <span id="id1"></span><h1><a class="toc-backref" href="#id6" role="doc-backlink">Building Arrow Java</a><a class="headerlink" href="#building-arrow-java" title="Link to this heading">#</a></h1> |
| <nav class="contents" id="contents"> |
| <p class="topic-title">Contents</p> |
| <ul class="simple"> |
| <li><p><a class="reference internal" href="#building-arrow-java" id="id6">Building Arrow Java</a></p> |
| <ul> |
| <li><p><a class="reference internal" href="#system-setup" id="id7">System Setup</a></p></li> |
| <li><p><a class="reference internal" href="#building" id="id8">Building</a></p> |
| <ul> |
| <li><p><a class="reference internal" href="#building-java-modules" id="id9">Building Java Modules</a></p> |
| <ul> |
| <li><p><a class="reference internal" href="#id2" id="id10">Maven</a></p></li> |
| <li><p><a class="reference internal" href="#docker-compose" id="id11">Docker compose</a></p></li> |
| <li><p><a class="reference internal" href="#archery" id="id12">Archery</a></p></li> |
| </ul> |
| </li> |
| <li><p><a class="reference internal" href="#building-jni-libraries-dylib-so-dll" id="id13">Building JNI Libraries (*.dylib / *.so / *.dll)</a></p> |
| <ul> |
| <li><p><a class="reference internal" href="#id3" id="id14">Maven</a></p></li> |
| <li><p><a class="reference internal" href="#cmake" id="id15">CMake</a></p></li> |
| <li><p><a class="reference internal" href="#id4" id="id16">Archery</a></p></li> |
| </ul> |
| </li> |
| <li><p><a class="reference internal" href="#building-java-jni-modules" id="id17">Building Java JNI Modules</a></p></li> |
| </ul> |
| </li> |
| <li><p><a class="reference internal" href="#testing" id="id18">Testing</a></p> |
| <ul> |
| <li><p><a class="reference internal" href="#configuring-maven-toolchains" id="id19">Configuring Maven toolchains</a></p></li> |
| <li><p><a class="reference internal" href="#testing-with-a-specific-jdk" id="id20">Testing with a specific JDK</a></p></li> |
| </ul> |
| </li> |
| <li><p><a class="reference internal" href="#ide-configuration" id="id21">IDE Configuration</a></p> |
| <ul> |
| <li><p><a class="reference internal" href="#intellij" id="id22">IntelliJ</a></p></li> |
| </ul> |
| </li> |
| <li><p><a class="reference internal" href="#common-errors" id="id23">Common Errors</a></p></li> |
| <li><p><a class="reference internal" href="#installing-nightly-packages" id="id24">Installing Nightly Packages</a></p> |
| <ul> |
| <li><p><a class="reference internal" href="#installing-from-apache-nightlies" id="id25">Installing from Apache Nightlies</a></p></li> |
| <li><p><a class="reference internal" href="#installing-manually" id="id26">Installing Manually</a></p></li> |
| </ul> |
| </li> |
| <li><p><a class="reference internal" href="#installing-staging-packages" id="id27">Installing Staging Packages</a></p> |
| <ul> |
| <li><p><a class="reference internal" href="#installing-from-apache-staging" id="id28">Installing from Apache Staging</a></p></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </nav> |
| <section id="system-setup"> |
| <h2><a class="toc-backref" href="#id7" role="doc-backlink">System Setup</a><a class="headerlink" href="#system-setup" title="Link to this heading">#</a></h2> |
| <p>Arrow Java uses the <a class="reference external" href="https://maven.apache.org/">Maven</a> build system.</p> |
| <p>Building requires:</p> |
| <ul class="simple"> |
| <li><p>JDK 11+</p></li> |
| <li><p>Maven 3+</p></li> |
| </ul> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>CI will test all supported JDK LTS versions, plus the latest non-LTS version.</p> |
| </div> |
| </section> |
| <section id="building"> |
| <h2><a class="toc-backref" href="#id8" role="doc-backlink">Building</a><a class="headerlink" href="#building" title="Link to this heading">#</a></h2> |
| <p>All the instructions below assume that you have cloned the Arrow git |
| repository:</p> |
| <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/apache/arrow.git |
| <span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>arrow |
| <span class="gp">$ </span>git<span class="w"> </span>submodule<span class="w"> </span>update<span class="w"> </span>--init<span class="w"> </span>--recursive |
| </pre></div> |
| </div> |
| <p>These are the options available to compile Arrow Java modules with:</p> |
| <ul class="simple"> |
| <li><p>Maven build tool.</p></li> |
| <li><p>Docker Compose.</p></li> |
| <li><p>Archery.</p></li> |
| </ul> |
| <section id="building-java-modules"> |
| <h3><a class="toc-backref" href="#id9" role="doc-backlink">Building Java Modules</a><a class="headerlink" href="#building-java-modules" title="Link to this heading">#</a></h3> |
| <p>To build the default modules, go to the project root and execute:</p> |
| <section id="id2"> |
| <h4><a class="toc-backref" href="#id10" role="doc-backlink">Maven</a><a class="headerlink" href="#id2" title="Link to this heading">#</a></h4> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow/java |
| $ export JAVA_HOME=<absolute path to your java home> |
| $ java --version |
| $ mvn clean install |
| </pre></div> |
| </div> |
| </section> |
| <section id="docker-compose"> |
| <h4><a class="toc-backref" href="#id11" role="doc-backlink">Docker compose</a><a class="headerlink" href="#docker-compose" title="Link to this heading">#</a></h4> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow/java |
| $ export JAVA_HOME=<absolute path to your java home> |
| $ java --version |
| $ docker compose run java |
| </pre></div> |
| </div> |
| </section> |
| <section id="archery"> |
| <h4><a class="toc-backref" href="#id12" role="doc-backlink">Archery</a><a class="headerlink" href="#archery" title="Link to this heading">#</a></h4> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow/java |
| $ export JAVA_HOME=<absolute path to your java home> |
| $ java --version |
| $ archery docker run java |
| </pre></div> |
| </div> |
| </section> |
| </section> |
| <section id="building-jni-libraries-dylib-so-dll"> |
| <h3><a class="toc-backref" href="#id13" role="doc-backlink">Building JNI Libraries (*.dylib / *.so / *.dll)</a><a class="headerlink" href="#building-jni-libraries-dylib-so-dll" title="Link to this heading">#</a></h3> |
| <p>First, we need to build the <a class="reference external" href="https://arrow.apache.org/docs/cpp/build_system.html">C++ shared libraries</a> that the JNI bindings will use. |
| We can build these manually or we can use <a class="reference external" href="https://github.com/apache/arrow/blob/main/dev/archery/README.md">Archery</a> to build them using a Docker container |
| (This will require installing Docker, Docker Compose, and Archery).</p> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>If you are building on Apple Silicon, be sure to use a JDK version that was compiled |
| for that architecture. See, for example, the <a class="reference external" href="https://www.azul.com/downloads/?os=macos&architecture=arm-64-bit&package=jdk">Azul JDK</a>.</p> |
| <p>If you are building on Windows OS, see <a class="reference internal" href="../cpp/windows.html#developers-cpp-windows"><span class="std std-ref">Developing on Windows</span></a>.</p> |
| </div> |
| <section id="id3"> |
| <h4><a class="toc-backref" href="#id14" role="doc-backlink">Maven</a><a class="headerlink" href="#id3" title="Link to this heading">#</a></h4> |
| <ul> |
| <li><p>To build only the JNI C Data Interface library (macOS / Linux):</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow/java |
| $ export JAVA_HOME=<absolute path to your java home> |
| $ java --version |
| $ mvn generate-resources -Pgenerate-libs-cdata-all-os -N |
| $ ls -latr ../java-dist/lib |
| |__ arrow_cdata_jni/ |
| </pre></div> |
| </div> |
| </li> |
| <li><p>To build only the JNI C Data Interface library (Windows):</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow/java |
| $ mvn generate-resources -Pgenerate-libs-cdata-all-os -N |
| $ dir "../java-dist/bin" |
| |__ arrow_cdata_jni/ |
| </pre></div> |
| </div> |
| </li> |
| <li><p>To build all JNI libraries (macOS / Linux) except the JNI C Data Interface library:</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow/java |
| $ export JAVA_HOME=<absolute path to your java home> |
| $ java --version |
| $ mvn generate-resources -Pgenerate-libs-jni-macos-linux -N |
| $ ls -latr java-dist/lib |
| |__ arrow_dataset_jni/ |
| |__ arrow_orc_jni/ |
| |__ gandiva_jni/ |
| </pre></div> |
| </div> |
| </li> |
| <li><p>To build all JNI libraries (Windows) except the JNI C Data Interface library:</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow/java |
| $ mvn generate-resources -Pgenerate-libs-jni-windows -N |
| $ dir "../java-dist/bin" |
| |__ arrow_dataset_jni/ |
| </pre></div> |
| </div> |
| </li> |
| </ul> |
| </section> |
| <section id="cmake"> |
| <h4><a class="toc-backref" href="#id15" role="doc-backlink">CMake</a><a class="headerlink" href="#cmake" title="Link to this heading">#</a></h4> |
| <ul> |
| <li><p>To build only the JNI C Data Interface library (macOS / Linux):</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow |
| $ mkdir -p java-dist java-cdata |
| $ cmake \ |
| -S java \ |
| -B java-cdata \ |
| -DARROW_JAVA_JNI_ENABLE_C=ON \ |
| -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF \ |
| -DBUILD_TESTING=OFF \ |
| -DCMAKE_BUILD_TYPE=Release \ |
| -DCMAKE_INSTALL_PREFIX=java-dist |
| $ cmake --build java-cdata --target install --config Release |
| $ ls -latr java-dist/lib |
| |__ arrow_cdata_jni/ |
| </pre></div> |
| </div> |
| </li> |
| <li><p>To build only the JNI C Data Interface library (Windows):</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow |
| $ mkdir java-dist, java-cdata |
| $ cmake ^ |
| -S java ^ |
| -B java-cdata ^ |
| -DARROW_JAVA_JNI_ENABLE_C=ON ^ |
| -DARROW_JAVA_JNI_ENABLE_DEFAULT=OFF ^ |
| -DBUILD_TESTING=OFF ^ |
| -DCMAKE_BUILD_TYPE=Release ^ |
| -DCMAKE_INSTALL_PREFIX=java-dist |
| $ cmake --build java-cdata --target install --config Release |
| $ dir "java-dist/bin" |
| |__ arrow_cdata_jni/ |
| </pre></div> |
| </div> |
| </li> |
| <li><p>To build all JNI libraries (macOS / Linux) except the JNI C Data Interface library:</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow |
| $ brew bundle --file=cpp/Brewfile |
| # Homebrew Bundle complete! 25 Brewfile dependencies now installed. |
| $ brew uninstall aws-sdk-cpp |
| # (We can't use aws-sdk-cpp installed by Homebrew because it has |
| # an issue: https://github.com/aws/aws-sdk-cpp/issues/1809 ) |
| $ export JAVA_HOME=<absolute path to your java home> |
| $ mkdir -p java-dist cpp-jni |
| $ cmake \ |
| -S cpp \ |
| -B cpp-jni \ |
| -DARROW_BUILD_SHARED=OFF \ |
| -DARROW_CSV=ON \ |
| -DARROW_DATASET=ON \ |
| -DARROW_DEPENDENCY_SOURCE=BUNDLED \ |
| -DARROW_DEPENDENCY_USE_SHARED=OFF \ |
| -DARROW_FILESYSTEM=ON \ |
| -DARROW_GANDIVA=ON \ |
| -DARROW_GANDIVA_STATIC_LIBSTDCPP=ON \ |
| -DARROW_JSON=ON \ |
| -DARROW_ORC=ON \ |
| -DARROW_PARQUET=ON \ |
| -DARROW_S3=ON \ |
| -DARROW_SUBSTRAIT=ON \ |
| -DARROW_USE_CCACHE=ON \ |
| -DCMAKE_BUILD_TYPE=Release \ |
| -DCMAKE_INSTALL_PREFIX=java-dist \ |
| -DCMAKE_UNITY_BUILD=ON |
| $ cmake --build cpp-jni --target install --config Release |
| $ cmake \ |
| -S java \ |
| -B java-jni \ |
| -DARROW_JAVA_JNI_ENABLE_C=OFF \ |
| -DARROW_JAVA_JNI_ENABLE_DEFAULT=ON \ |
| -DBUILD_TESTING=OFF \ |
| -DCMAKE_BUILD_TYPE=Release \ |
| -DCMAKE_INSTALL_PREFIX=java-dist \ |
| -DCMAKE_PREFIX_PATH=$PWD/java-dist \ |
| -DProtobuf_ROOT=$PWD/../cpp-jni/protobuf_ep-install \ |
| -DProtobuf_USE_STATIC_LIBS=ON |
| $ cmake --build java-jni --target install --config Release |
| $ ls -latr java-dist/lib/ |
| |__ arrow_dataset_jni/ |
| |__ arrow_orc_jni/ |
| |__ gandiva_jni/ |
| </pre></div> |
| </div> |
| </li> |
| <li><p>To build all JNI libraries (Windows) except the JNI C Data Interface library:</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow |
| $ mkdir java-dist, cpp-jni |
| $ cmake ^ |
| -S cpp ^ |
| -B cpp-jni ^ |
| -DARROW_BUILD_SHARED=OFF ^ |
| -DARROW_CSV=ON ^ |
| -DARROW_DATASET=ON ^ |
| -DARROW_DEPENDENCY_USE_SHARED=OFF ^ |
| -DARROW_FILESYSTEM=ON ^ |
| -DARROW_GANDIVA=OFF ^ |
| -DARROW_JSON=ON ^ |
| -DARROW_ORC=ON ^ |
| -DARROW_PARQUET=ON ^ |
| -DARROW_S3=ON ^ |
| -DARROW_SUBSTRAIT=ON ^ |
| -DARROW_USE_CCACHE=ON ^ |
| -DARROW_WITH_BROTLI=ON ^ |
| -DARROW_WITH_LZ4=ON ^ |
| -DARROW_WITH_SNAPPY=ON ^ |
| -DARROW_WITH_ZLIB=ON ^ |
| -DARROW_WITH_ZSTD=ON ^ |
| -DCMAKE_BUILD_TYPE=Release ^ |
| -DCMAKE_INSTALL_PREFIX=java-dist ^ |
| -DCMAKE_UNITY_BUILD=ON ^ |
| -GNinja |
| $ cd cpp-jni |
| $ ninja install |
| $ cd ../ |
| $ cmake ^ |
| -S java ^ |
| -B java-jni ^ |
| -DARROW_JAVA_JNI_ENABLE_C=OFF ^ |
| -DARROW_JAVA_JNI_ENABLE_DATASET=ON ^ |
| -DARROW_JAVA_JNI_ENABLE_DEFAULT=ON ^ |
| -DARROW_JAVA_JNI_ENABLE_GANDIVA=OFF ^ |
| -DARROW_JAVA_JNI_ENABLE_ORC=ON ^ |
| -DBUILD_TESTING=OFF ^ |
| -DCMAKE_BUILD_TYPE=Release ^ |
| -DCMAKE_INSTALL_PREFIX=java-dist ^ |
| -DCMAKE_PREFIX_PATH=$PWD/java-dist |
| $ cmake --build java-jni --target install --config Release |
| $ dir "java-dist/bin" |
| |__ arrow_orc_jni/ |
| |__ arrow_dataset_jni/ |
| </pre></div> |
| </div> |
| </li> |
| </ul> |
| </section> |
| <section id="id4"> |
| <h4><a class="toc-backref" href="#id16" role="doc-backlink">Archery</a><a class="headerlink" href="#id4" title="Link to this heading">#</a></h4> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow |
| $ archery docker run java-jni-manylinux-2014 |
| $ ls -latr java-dist |
| |__ arrow_cdata_jni/ |
| |__ arrow_dataset_jni/ |
| |__ arrow_orc_jni/ |
| |__ gandiva_jni/ |
| </pre></div> |
| </div> |
| </section> |
| </section> |
| <section id="building-java-jni-modules"> |
| <h3><a class="toc-backref" href="#id17" role="doc-backlink">Building Java JNI Modules</a><a class="headerlink" href="#building-java-jni-modules" title="Link to this heading">#</a></h3> |
| <ul> |
| <li><p>To compile the JNI bindings, use the <code class="docutils literal notranslate"><span class="pre">arrow-c-data</span></code> Maven profile:</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow/java |
| $ mvn -Darrow.c.jni.dist.dir=<absolute path to your arrow folder>/java-dist/lib -Parrow-c-data clean install |
| </pre></div> |
| </div> |
| </li> |
| <li><p>To compile the JNI bindings for ORC / Gandiva / Dataset, use the <code class="docutils literal notranslate"><span class="pre">arrow-jni</span></code> Maven profile:</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow/java |
| $ mvn \ |
| -Darrow.cpp.build.dir=<absolute path to your arrow folder>/java-dist/lib/ \ |
| -Darrow.c.jni.dist.dir=<absolute path to your arrow folder>/java-dist/lib/ \ |
| -Parrow-jni clean install |
| </pre></div> |
| </div> |
| </li> |
| </ul> |
| </section> |
| </section> |
| <section id="testing"> |
| <h2><a class="toc-backref" href="#id18" role="doc-backlink">Testing</a><a class="headerlink" href="#testing" title="Link to this heading">#</a></h2> |
| <p>By default, Maven uses the same Java version to both build the code and run the tests.</p> |
| <p>It is also possible to use a different JDK version for the tests. This requires Maven |
| toolchains to be configured beforehand, and then a specific test property needs to be set.</p> |
| <section id="configuring-maven-toolchains"> |
| <h3><a class="toc-backref" href="#id19" role="doc-backlink">Configuring Maven toolchains</a><a class="headerlink" href="#configuring-maven-toolchains" title="Link to this heading">#</a></h3> |
| <p>To be able to use a JDK version for testing, it needs to be registered first in Maven <code class="docutils literal notranslate"><span class="pre">toolchains.xml</span></code> |
| configuration file usually located under <code class="docutils literal notranslate"><span class="pre">${HOME}/.m2</span></code> with the following snippet added to it:</p> |
| <blockquote> |
| <div><div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="cp"><?xml version="1.0" encoding="UTF8"?></span> |
| <span class="nt"><toolchains></span> |
| |
| <span class="w"> </span>[...] |
| |
| <span class="w"> </span><span class="nt"><toolchain></span> |
| <span class="w"> </span><span class="nt"><type></span>jdk<span class="nt"></type></span> |
| <span class="w"> </span><span class="nt"><provides></span> |
| <span class="w"> </span><span class="nt"><version></span>21<span class="nt"></version></span><span class="w"> </span><span class="cm"><!-- Replace with the corresponding JDK version: 11, 17, ... --></span> |
| <span class="w"> </span><span class="nt"><vendor></span>temurin<span class="nt"></vendor></span><span class="w"> </span><span class="cm"><!-- Replace with the vendor/distribution: temurin, oracle, zulu ... --></span> |
| <span class="w"> </span><span class="nt"></provides></span> |
| <span class="w"> </span><span class="nt"><configuration></span> |
| <span class="w"> </span><span class="nt"><jdkHome></span>path/to/jdk/home<span class="nt"></jdkHome></span><span class="w"> </span><span class="cm"><!-- Replace with the path to the JDK --></span> |
| <span class="w"> </span><span class="nt"></configuration></span> |
| <span class="w"> </span><span class="nt"></toolchain></span> |
| |
| <span class="w"> </span>[...] |
| |
| <span class="nt"></toolchains></span> |
| </pre></div> |
| </div> |
| </div></blockquote> |
| </section> |
| <section id="testing-with-a-specific-jdk"> |
| <h3><a class="toc-backref" href="#id20" role="doc-backlink">Testing with a specific JDK</a><a class="headerlink" href="#testing-with-a-specific-jdk" title="Link to this heading">#</a></h3> |
| <p>To run Arrow tests with a specific JDK version, use the <code class="docutils literal notranslate"><span class="pre">arrow.test.jdk-version</span></code> property.</p> |
| <p>For example, to run Arrow tests with JDK 17, use the following snippet:</p> |
| <blockquote> |
| <div><div class="highlight-text notranslate"><div class="highlight"><pre><span></span>$ cd arrow/java |
| $ mvn -Darrow.test.jdk-version=17 clean verify |
| </pre></div> |
| </div> |
| </div></blockquote> |
| </section> |
| </section> |
| <section id="ide-configuration"> |
| <h2><a class="toc-backref" href="#id21" role="doc-backlink">IDE Configuration</a><a class="headerlink" href="#ide-configuration" title="Link to this heading">#</a></h2> |
| <section id="intellij"> |
| <h3><a class="toc-backref" href="#id22" role="doc-backlink">IntelliJ</a><a class="headerlink" href="#intellij" title="Link to this heading">#</a></h3> |
| <p>To start working on Arrow in IntelliJ: build the project once from the command |
| line using <code class="docutils literal notranslate"><span class="pre">mvn</span> <span class="pre">clean</span> <span class="pre">install</span></code>. Then open the <code class="docutils literal notranslate"><span class="pre">java/</span></code> subdirectory of the |
| Arrow repository, and update the following settings:</p> |
| <ul class="simple"> |
| <li><p>In the Files tool window, find the path <code class="docutils literal notranslate"><span class="pre">vector/target/generated-sources</span></code>, |
| right click the directory, and select Mark Directory as > Generated Sources |
| Root. There is no need to mark other generated sources directories, as only |
| the <code class="docutils literal notranslate"><span class="pre">vector</span></code> module generates sources.</p></li> |
| <li><p>For JDK 11, due to an <a class="reference external" href="https://youtrack.jetbrains.com/issue/IDEA-201168">IntelliJ bug</a>, you must go into |
| Settings > Build, Execution, Deployment > Compiler > Java Compiler and disable |
| “Use ‘–release’ option for cross-compilation (Java 9 and later)”. Otherwise |
| you will get an error like “package sun.misc does not exist”.</p></li> |
| <li><p>You may want to disable error-prone entirely if it gives spurious |
| warnings (disable both error-prone profiles in the Maven tool window |
| and “Reload All Maven Projects”).</p></li> |
| <li><p>If using IntelliJ’s Maven integration to build, you may need to change |
| <code class="docutils literal notranslate"><span class="pre"><fork></span></code> to <code class="docutils literal notranslate"><span class="pre">false</span></code> in the pom.xml files due to an <a class="reference external" href="https://youtrack.jetbrains.com/issue/IDEA-278903">IntelliJ bug</a>.</p></li> |
| <li><p>To enable debugging JNI-based modules like <code class="docutils literal notranslate"><span class="pre">dataset</span></code>, |
| activate specific profiles in the Maven tab under “Profiles”. |
| Ensure the profiles <code class="docutils literal notranslate"><span class="pre">arrow-c-data</span></code>, <code class="docutils literal notranslate"><span class="pre">arrow-jni</span></code>, <code class="docutils literal notranslate"><span class="pre">generate-libs-cdata-all-os</span></code>, |
| <code class="docutils literal notranslate"><span class="pre">generate-libs-jni-macos-linux</span></code>, and <code class="docutils literal notranslate"><span class="pre">jdk11+</span></code> are enabled, so that the |
| IDE can build them and enable debugging.</p></li> |
| </ul> |
| <p>You may not need to update all of these settings if you build/test with the |
| IntelliJ Maven integration instead of with IntelliJ directly.</p> |
| </section> |
| </section> |
| <section id="common-errors"> |
| <h2><a class="toc-backref" href="#id23" role="doc-backlink">Common Errors</a><a class="headerlink" href="#common-errors" title="Link to this heading">#</a></h2> |
| <ul> |
| <li><p>When working with the JNI code: if the C++ build cannot find dependencies, with errors like these:</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>Could NOT find Boost (missing: Boost_INCLUDE_DIR system filesystem) |
| Could NOT find Lz4 (missing: LZ4_LIB) |
| Could NOT find zstd (missing: ZSTD_LIB) |
| </pre></div> |
| </div> |
| <p>Specify that the dependencies should be downloaded at build time (more details at <a class="reference external" href="https://arrow.apache.org/docs/developers/cpp/building.html#individual-dependency-resolution">Dependency Resolution</a>):</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>-Dre2_SOURCE=BUNDLED \ |
| -DBoost_SOURCE=BUNDLED \ |
| -Dutf8proc_SOURCE=BUNDLED \ |
| -DSnappy_SOURCE=BUNDLED \ |
| -DORC_SOURCE=BUNDLED \ |
| -DZLIB_SOURCE=BUNDLED |
| </pre></div> |
| </div> |
| </li> |
| </ul> |
| </section> |
| <section id="installing-nightly-packages"> |
| <h2><a class="toc-backref" href="#id24" role="doc-backlink">Installing Nightly Packages</a><a class="headerlink" href="#installing-nightly-packages" title="Link to this heading">#</a></h2> |
| <div class="admonition warning"> |
| <p class="admonition-title">Warning</p> |
| <p>These packages are not official releases. Use them at your own risk.</p> |
| </div> |
| <p>Arrow nightly builds are posted on the mailing list at <a class="reference external" href="https://lists.apache.org/list.html?builds@arrow.apache.org">builds@arrow.apache.org</a>. |
| The artifacts are uploaded to GitHub. For example, for 2022/07/30, they can be found at <a class="reference external" href="https://github.com/ursacomputing/crossbow/releases/tag/nightly-packaging-2022-07-30-0-github-java-jars">GitHub Nightly</a>.</p> |
| <section id="installing-from-apache-nightlies"> |
| <h3><a class="toc-backref" href="#id25" role="doc-backlink">Installing from Apache Nightlies</a><a class="headerlink" href="#installing-from-apache-nightlies" title="Link to this heading">#</a></h3> |
| <ol class="arabic"> |
| <li><p>Look up the nightly version number for the Arrow libraries used.</p> |
| <p>For example, for <code class="docutils literal notranslate"><span class="pre">arrow-memory</span></code>, visit <a class="reference external" href="https://nightlies.apache.org/arrow/java/org/apache/arrow/arrow-memory/">https://nightlies.apache.org/arrow/java/org/apache/arrow/arrow-memory/</a> and see what versions are available (e.g. 9.0.0.dev501).</p> |
| </li> |
| <li><p>Add Apache Nightlies Repository to the Maven/Gradle project.</p> |
| <div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><properties></span> |
| <span class="w"> </span><span class="nt"><arrow.version></span>9.0.0.dev501<span class="nt"></arrow.version></span> |
| <span class="nt"></properties></span> |
| ... |
| <span class="nt"><repositories></span> |
| <span class="w"> </span><span class="nt"><repository></span> |
| <span class="w"> </span><span class="nt"><id></span>arrow-apache-nightlies<span class="nt"></id></span> |
| <span class="w"> </span><span class="nt"><url></span>https://nightlies.apache.org/arrow/java<span class="nt"></url></span> |
| <span class="w"> </span><span class="nt"></repository></span> |
| <span class="nt"></repositories></span> |
| ... |
| <span class="nt"><dependencies></span> |
| <span class="w"> </span><span class="nt"><dependency></span> |
| <span class="w"> </span><span class="nt"><groupId></span>org.apache.arrow<span class="nt"></groupId></span> |
| <span class="w"> </span><span class="nt"><artifactId></span>arrow-vector<span class="nt"></artifactId></span> |
| <span class="w"> </span><span class="nt"><version></span>${arrow.version}<span class="nt"></version></span> |
| <span class="w"> </span><span class="nt"></dependency></span> |
| <span class="nt"></dependencies></span> |
| ... |
| </pre></div> |
| </div> |
| </li> |
| </ol> |
| </section> |
| <section id="installing-manually"> |
| <h3><a class="toc-backref" href="#id26" role="doc-backlink">Installing Manually</a><a class="headerlink" href="#installing-manually" title="Link to this heading">#</a></h3> |
| <ol class="arabic"> |
| <li><p>Decide nightly packages repository to use, for example: <a class="github reference external" href="https://github.com/ursacomputing/crossbow/releases/tag/nightly-packaging-2022-07-30-0-github-java-jars">ursacomputing/crossbow</a></p></li> |
| <li><p>Add packages to your pom.xml, for example: flight-core (it depends on: arrow-format, arrow-vector, arrow-memory-core and arrow-memory-netty).</p> |
| <div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><properties></span> |
| <span class="w"> </span><span class="nt"><maven.compiler.source></span>8<span class="nt"></maven.compiler.source></span> |
| <span class="w"> </span><span class="nt"><maven.compiler.target></span>8<span class="nt"></maven.compiler.target></span> |
| <span class="w"> </span><span class="nt"><arrow.version></span>9.0.0.dev501<span class="nt"></arrow.version></span> |
| <span class="nt"></properties></span> |
| |
| <span class="nt"><dependencies></span> |
| <span class="w"> </span><span class="nt"><dependency></span> |
| <span class="w"> </span><span class="nt"><groupId></span>org.apache.arrow<span class="nt"></groupId></span> |
| <span class="w"> </span><span class="nt"><artifactId></span>flight-core<span class="nt"></artifactId></span> |
| <span class="w"> </span><span class="nt"><version></span>${arrow.version}<span class="nt"></version></span> |
| <span class="w"> </span><span class="nt"></dependency></span> |
| <span class="nt"></dependencies></span> |
| </pre></div> |
| </div> |
| </li> |
| <li><p>Download the necessary pom and jar files to a temporary directory:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>mkdir<span class="w"> </span>nightly-packaging-2022-07-30-0-github-java-jars |
| $<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>nightly-packaging-2022-07-30-0-github-java-jars |
| $<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-java-root-9.0.0.dev501.pom |
| $<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-format-9.0.0.dev501.pom |
| $<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-format-9.0.0.dev501.jar |
| $<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-vector-9.0.0.dev501.pom |
| $<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-vector-9.0.0.dev501.jar |
| $<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-memory-9.0.0.dev501.pom |
| $<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-memory-core-9.0.0.dev501.pom |
| $<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-memory-netty-9.0.0.dev501.pom |
| $<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-memory-core-9.0.0.dev501.jar |
| $<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-memory-netty-9.0.0.dev501.jar |
| $<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/arrow-flight-9.0.0.dev501.pom |
| $<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/flight-core-9.0.0.dev501.pom |
| $<span class="w"> </span>wget<span class="w"> </span>https://github.com/ursacomputing/crossbow/releases/download/nightly-packaging-2022-07-30-0-github-java-jars/flight-core-9.0.0.dev501.jar |
| $<span class="w"> </span>tree |
| . |
| ├──<span class="w"> </span>arrow-flight-9.0.0.dev501.pom |
| ├──<span class="w"> </span>arrow-format-9.0.0.dev501.jar |
| ├──<span class="w"> </span>arrow-format-9.0.0.dev501.pom |
| ├──<span class="w"> </span>arrow-java-root-9.0.0.dev501.pom |
| ├──<span class="w"> </span>arrow-memory-9.0.0.dev501.pom |
| ├──<span class="w"> </span>arrow-memory-core-9.0.0.dev501.jar |
| ├──<span class="w"> </span>arrow-memory-core-9.0.0.dev501.pom |
| ├──<span class="w"> </span>arrow-memory-netty-9.0.0.dev501.jar |
| ├──<span class="w"> </span>arrow-memory-netty-9.0.0.dev501.pom |
| ├──<span class="w"> </span>arrow-vector-9.0.0.dev501.jar |
| ├──<span class="w"> </span>arrow-vector-9.0.0.dev501.pom |
| ├──<span class="w"> </span>flight-core-9.0.0.dev501.jar |
| └──<span class="w"> </span>flight-core-9.0.0.dev501.pom |
| </pre></div> |
| </div> |
| </li> |
| <li><p>Install the artifacts to the local Maven repository with <code class="docutils literal notranslate"><span class="pre">mvn</span> <span class="pre">install:install-file</span></code>:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-java-root-9.0.0.dev501.pom"</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-java-root<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom |
| $<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-format-9.0.0.dev501.pom"</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-format<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom |
| $<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-format-9.0.0.dev501.jar"</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-format<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>jar |
| $<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-vector-9.0.0.dev501.pom"</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-vector<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom |
| $<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-vector-9.0.0.dev501.jar"</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-vector<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>jar |
| $<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-memory-9.0.0.dev501.pom"</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-memory<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom |
| $<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-memory-core-9.0.0.dev501.pom"</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-memory-core<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom |
| $<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-memory-netty-9.0.0.dev501.pom"</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-memory-netty<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom |
| $<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-memory-core-9.0.0.dev501.jar"</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-memory-core<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>jar |
| $<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-memory-netty-9.0.0.dev501.jar"</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-memory-netty<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>jar |
| $<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/arrow-flight-9.0.0.dev501.pom"</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>arrow-flight<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom |
| $<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/flight-core-9.0.0.dev501.pom"</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>flight-core<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>pom |
| $<span class="w"> </span>mvn<span class="w"> </span>install:install-file<span class="w"> </span>-Dfile<span class="o">=</span><span class="s2">"</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span><span class="s2">/flight-core-9.0.0.dev501.jar"</span><span class="w"> </span>-DgroupId<span class="o">=</span>org.apache.arrow<span class="w"> </span>-DartifactId<span class="o">=</span>flight-core<span class="w"> </span>-Dversion<span class="o">=</span><span class="m">9</span>.0.0.dev501<span class="w"> </span>-Dpackaging<span class="o">=</span>jar |
| </pre></div> |
| </div> |
| </li> |
| <li><p>Validate that the packages were installed:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>tree<span class="w"> </span>~/.m2/repository/org/apache/arrow |
| . |
| ├──<span class="w"> </span>arrow-flight |
| │<span class="w"> </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501 |
| │<span class="w"> </span>│<span class="w"> </span>└──<span class="w"> </span>arrow-flight-9.0.0.dev501.pom |
| ├──<span class="w"> </span>arrow-format |
| │<span class="w"> </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501 |
| │<span class="w"> </span>│<span class="w"> </span>├──<span class="w"> </span>arrow-format-9.0.0.dev501.jar |
| │<span class="w"> </span>│<span class="w"> </span>└──<span class="w"> </span>arrow-format-9.0.0.dev501.pom |
| ├──<span class="w"> </span>arrow-java-root |
| │<span class="w"> </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501 |
| │<span class="w"> </span>│<span class="w"> </span>└──<span class="w"> </span>arrow-java-root-9.0.0.dev501.pom |
| ├──<span class="w"> </span>arrow-memory |
| │<span class="w"> </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501 |
| │<span class="w"> </span>│<span class="w"> </span>└──<span class="w"> </span>arrow-memory-9.0.0.dev501.pom |
| ├──<span class="w"> </span>arrow-memory-core |
| │<span class="w"> </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501 |
| │<span class="w"> </span>│<span class="w"> </span>├──<span class="w"> </span>arrow-memory-core-9.0.0.dev501.jar |
| │<span class="w"> </span>│<span class="w"> </span>└──<span class="w"> </span>arrow-memory-core-9.0.0.dev501.pom |
| ├──<span class="w"> </span>arrow-memory-netty |
| │<span class="w"> </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501 |
| │<span class="w"> </span>│<span class="w"> </span>├──<span class="w"> </span>arrow-memory-netty-9.0.0.dev501.jar |
| │<span class="w"> </span>│<span class="w"> </span>└──<span class="w"> </span>arrow-memory-netty-9.0.0.dev501.pom |
| ├──<span class="w"> </span>arrow-vector |
| │<span class="w"> </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501 |
| │<span class="w"> </span>│<span class="w"> </span>├──<span class="w"> </span>_remote.repositories |
| │<span class="w"> </span>│<span class="w"> </span>├──<span class="w"> </span>arrow-vector-9.0.0.dev501.jar |
| │<span class="w"> </span>│<span class="w"> </span>└──<span class="w"> </span>arrow-vector-9.0.0.dev501.pom |
| └──<span class="w"> </span>flight-core |
| <span class="w"> </span>├──<span class="w"> </span><span class="m">9</span>.0.0.dev501 |
| <span class="w"> </span>│<span class="w"> </span>├──<span class="w"> </span>flight-core-9.0.0.dev501.jar |
| <span class="w"> </span>│<span class="w"> </span>└──<span class="w"> </span>flight-core-9.0.0.dev501.pom |
| </pre></div> |
| </div> |
| </li> |
| <li><p>Compile your project like usual with <code class="docutils literal notranslate"><span class="pre">mvn</span> <span class="pre">clean</span> <span class="pre">install</span></code>.</p></li> |
| </ol> |
| </section> |
| </section> |
| <section id="installing-staging-packages"> |
| <h2><a class="toc-backref" href="#id27" role="doc-backlink">Installing Staging Packages</a><a class="headerlink" href="#installing-staging-packages" title="Link to this heading">#</a></h2> |
| <div class="admonition warning"> |
| <p class="admonition-title">Warning</p> |
| <p>These packages are not official releases. Use them at your own risk.</p> |
| </div> |
| <p>Arrow staging builds are created when a Release Candidate (RC) is being prepared. This allows users to test the RC in their applications before voting on the release.</p> |
| <section id="installing-from-apache-staging"> |
| <h3><a class="toc-backref" href="#id28" role="doc-backlink">Installing from Apache Staging</a><a class="headerlink" href="#installing-from-apache-staging" title="Link to this heading">#</a></h3> |
| <ol class="arabic"> |
| <li><p>Look up the next version number for the Arrow libraries used.</p></li> |
| <li><p>Add Apache Staging Repository to the Maven/Gradle project.</p> |
| <div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><properties></span> |
| <span class="w"> </span><span class="nt"><arrow.version></span>9.0.0<span class="nt"></arrow.version></span> |
| <span class="nt"></properties></span> |
| ... |
| <span class="nt"><repositories></span> |
| <span class="w"> </span><span class="nt"><repository></span> |
| <span class="w"> </span><span class="nt"><id></span>arrow-apache-staging<span class="nt"></id></span> |
| <span class="w"> </span><span class="nt"><url></span>https://repository.apache.org/content/repositories/staging<span class="nt"></url></span> |
| <span class="w"> </span><span class="nt"></repository></span> |
| <span class="nt"></repositories></span> |
| ... |
| <span class="nt"><dependencies></span> |
| <span class="w"> </span><span class="nt"><dependency></span> |
| <span class="w"> </span><span class="nt"><groupId></span>org.apache.arrow<span class="nt"></groupId></span> |
| <span class="w"> </span><span class="nt"><artifactId></span>arrow-vector<span class="nt"></artifactId></span> |
| <span class="w"> </span><span class="nt"><version></span>${arrow.version}<span class="nt"></version></span> |
| <span class="w"> </span><span class="nt"></dependency></span> |
| <span class="nt"></dependencies></span> |
| ... |
| </pre></div> |
| </div> |
| </li> |
| </ol> |
| </section> |
| </section> |
| </section> |
| |
| |
| </article> |
| |
| |
| |
| |
| |
| <footer class="prev-next-footer d-print-none"> |
| |
| <div class="prev-next-area"> |
| <a class="left-prev" |
| href="index.html" |
| title="previous page"> |
| <i class="fa-solid fa-angle-left"></i> |
| <div class="prev-next-info"> |
| <p class="prev-next-subtitle">previous</p> |
| <p class="prev-next-title">Java Development</p> |
| </div> |
| </a> |
| <a class="right-next" |
| href="development.html" |
| title="next page"> |
| <div class="prev-next-info"> |
| <p class="prev-next-subtitle">next</p> |
| <p class="prev-next-title">Development Guidelines</p> |
| </div> |
| <i class="fa-solid fa-angle-right"></i> |
| </a> |
| </div> |
| </footer> |
| |
| </div> |
| |
| |
| |
| <dialog id="pst-secondary-sidebar-modal"></dialog> |
| <div id="pst-secondary-sidebar" class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner"> |
| |
| |
| <div class="sidebar-secondary-item"> |
| <div |
| id="pst-page-navigation-heading-2" |
| class="page-toc tocsection onthispage"> |
| <i class="fa-solid fa-list"></i> On this page |
| </div> |
| <nav class="bd-toc-nav page-toc" aria-labelledby="pst-page-navigation-heading-2"> |
| <ul class="visible nav section-nav flex-column"> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#system-setup">System Setup</a></li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#building">Building</a><ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#building-java-modules">Building Java Modules</a><ul class="nav section-nav flex-column"> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#id2">Maven</a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#docker-compose">Docker compose</a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#archery">Archery</a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#building-jni-libraries-dylib-so-dll">Building JNI Libraries (*.dylib / *.so / *.dll)</a><ul class="nav section-nav flex-column"> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#id3">Maven</a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#cmake">CMake</a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#id4">Archery</a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#building-java-jni-modules">Building Java JNI Modules</a></li> |
| </ul> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#testing">Testing</a><ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#configuring-maven-toolchains">Configuring Maven toolchains</a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#testing-with-a-specific-jdk">Testing with a specific JDK</a></li> |
| </ul> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#ide-configuration">IDE Configuration</a><ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#intellij">IntelliJ</a></li> |
| </ul> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#common-errors">Common Errors</a></li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#installing-nightly-packages">Installing Nightly Packages</a><ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#installing-from-apache-nightlies">Installing from Apache Nightlies</a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#installing-manually">Installing Manually</a></li> |
| </ul> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#installing-staging-packages">Installing Staging Packages</a><ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#installing-from-apache-staging">Installing from Apache Staging</a></li> |
| </ul> |
| </li> |
| </ul> |
| </nav></div> |
| |
| <div class="sidebar-secondary-item"> |
| |
| |
| <div class="tocsection editthispage"> |
| <a href="https://github.com/apache/arrow/edit/main/docs/source/developers/java/building.rst"> |
| <i class="fa-solid fa-pencil"></i> |
| |
| |
| |
| Edit on GitHub |
| |
| |
| </a> |
| </div> |
| </div> |
| |
| </div></div> |
| |
| |
| </div> |
| <footer class="bd-footer-content"> |
| |
| </footer> |
| |
| </main> |
| </div> |
| </div> |
| |
| <!-- Scripts loaded after <body> so the DOM is not blocked --> |
| <script defer src="../../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf"></script> |
| <script defer src="../../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf"></script> |
| |
| <footer class="bd-footer"> |
| <div class="bd-footer__inner bd-page-width"> |
| |
| <div class="footer-items__start"> |
| |
| <div class="footer-item"> |
| |
| <p class="copyright"> |
| |
| © Copyright 2016-2025 Apache Software Foundation. |
| Apache Arrow, Arrow, Apache, the Apache logo, and the Apache Arrow project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries. |
| <br/> |
| |
| </p> |
| </div> |
| |
| <div class="footer-item"> |
| |
| <p class="sphinx-version"> |
| Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3. |
| <br/> |
| </p> |
| </div> |
| |
| </div> |
| |
| |
| |
| <div class="footer-items__end"> |
| |
| <div class="footer-item"> |
| <p class="theme-version"> |
| <!-- # L10n: Setting the PST URL as an argument as this does not need to be localized --> |
| Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> 0.16.1. |
| </p></div> |
| |
| </div> |
| |
| </div> |
| |
| </footer> |
| </body> |
| </html> |