blob: 7683593f19a7415c68dcfa318a9decb0dc37b296 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<title>Apache Jena - Using Jena with Apache Maven</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="/css/bootstrap-icons.css" rel="stylesheet" media="screen"><link rel="stylesheet" type="text/css" href="https://jena.apache.org/sass/jena.1b17c39a117e22b46db4c66f6395dc27c134a60377d87d2d5745b8600eb69722.css" integrity="sha256-GxfDmhF&#43;IrRttMZvY5XcJ8E0pgN32H0tV0W4YA62lyI=">
<link rel="shortcut icon" href="/images/favicon.ico" />
</head>
<body>
<nav class="navbar navbar-expand-lg bg-body-tertiary" role="navigation">
<div class="container">
<div class="navbar-header">
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="/index.html">
<img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
</div>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li id="homepage" class="nav-item"><a class="nav-link" href="/index.html"><span class="bi-house"></span> Home</a></li>
<li id="download" class="nav-item"><a class="nav-link" href="/download/index.cgi"><span class="bi-download"></span> Download</a></li>
<li class="nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal"></span> Learn <b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="dropdown-header">Tutorials</li>
<li><a class="dropdown-item" href="/tutorials/index.html">Overview</a></li>
<li><a class="dropdown-item" href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
<li><a class="dropdown-item" href="/documentation/notes/index.html">How-To's</a></li>
<li><a class="dropdown-item" href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
<li><a class="dropdown-item" href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
<li><a class="dropdown-item" href="/tutorials/sparql.html">SPARQL tutorial</a></li>
<li><a class="dropdown-item" href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
<li class="dropdown-divider"></li>
<li class="dropdown-header">References</li>
<li><a class="dropdown-item" href="/documentation/index.html">Overview</a></li>
<li><a class="dropdown-item" href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
<li><a class="dropdown-item" href="/documentation/io/">RDF I/O</a></li>
<li><a class="dropdown-item" href="/documentation/assembler/index.html">Assembler</a></li>
<li><a class="dropdown-item" href="/documentation/tools/index.html">Command-line tools</a></li>
<li><a class="dropdown-item" href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
<li><a class="dropdown-item" href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
<li><a class="dropdown-item" href="/documentation/inference/index.html">Inference API</a></li>
<li><a class="dropdown-item" href="/documentation/ontology/">Ontology API</a></li>
<li><a class="dropdown-item" href="/documentation/permissions/index.html">Permissions</a></li>
<li><a class="dropdown-item" href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
<li><a class="dropdown-item" href="/documentation/rdf/index.html">RDF API</a></li>
<li><a class="dropdown-item" href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
<li><a class="dropdown-item" href="/documentation/rdfstar/index.html">RDF-star</a></li>
<li><a class="dropdown-item" href="/documentation/shacl/index.html">SHACL</a></li>
<li><a class="dropdown-item" href="/documentation/shex/index.html">ShEx</a></li>
<li><a class="dropdown-item" href="/documentation/tdb/index.html">TDB</a></li>
<li><a class="dropdown-item" href="/documentation/tdb2/index.html">TDB2</a></li>
<li><a class="dropdown-item" href="/documentation/query/text-query.html">Text Search</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal-code"></span> Javadoc <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/documentation/javadoc.html">All Javadoc</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/arq/">ARQ</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/jena/">Jena Core</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/permissions/">Permissions</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/shacl/">SHACL</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/tdb/">TDB</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/text/">Text Search</a></li>
</ul>
</li>
</ul>
<form class="d-flex" role="search" action="/search" method="GET">
<div class="input-group">
<input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search" style="width: 10rem;">
<button class="btn btn-outline-secondary border-start-0 border" type="submit">
<i class="bi-search"></i>
</button>
</div>
</form>
<ul class="navbar-nav">
<li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html" title="Ask"><span class="bi-patch-question"></span><span class="text-body d-none d-xxl-inline"> Ask</span></a></li>
<li class="nav-item dropdown">
<a href="#" title="Get involved" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-megaphone"></span><span class="text-body d-none d-xxl-inline"> Get involved </span><b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/getting_involved/index.html">Contribute</a></li>
<li><a class="dropdown-item" href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
<li class="dropdown-divider"></li>
<li class="dropdown-header">Project</li>
<li><a class="dropdown-item" href="/about_jena/about.html">About Jena</a></li>
<li><a class="dropdown-item" href="/about_jena/architecture.html">Architecture</a></li>
<li><a class="dropdown-item" href="/about_jena/citing.html">Citing</a></li>
<li><a class="dropdown-item" href="/about_jena/team.html">Project team</a></li>
<li><a class="dropdown-item" href="/about_jena/contributions.html">Related projects</a></li>
<li><a class="dropdown-item" href="/about_jena/roadmap.html">Roadmap</a></li>
<li><a class="dropdown-item" href="/about_jena/security-advisories.html">Security Advisories</a></li>
<li class="dropdown-divider"></li>
<li class="dropdown-header">ASF</li>
<li><a class="dropdown-item" href="https://www.apache.org/">Apache Software Foundation</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
</ul>
</li>
<li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/download/maven.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span><span class="text-body d-none d-xxl-inline"> Edit this page</span></a></li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="row">
<div class="col-md-12">
<div id="breadcrumbs">
<ol class="breadcrumb mt-4 p-2 bg-body-tertiary">
<li class="breadcrumb-item"><a href='/download'>DOWNLOAD</a></li>
<li class="breadcrumb-item active">MAVEN.HTML</li>
</ol>
</div>
<h1 class="title">Using Jena with Apache Maven</h1>
<main class="d-flex flex-xl-row flex-column">
<aside class="text-muted align-self-start mb-3 p-0 d-xl-none d-block">
<h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
<nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#repositories">Repositories</a></li>
<li><a href="#specifying-jena-as-a-dependency">Specifying Jena as a dependency</a></li>
<li><a href="#major-artifacts">Major Artifacts</a></li>
<li><a href="#specifying-dependencies-on-snapshots">Specifying dependencies on SNAPSHOTs</a></li>
<li><a href="#build-and-install-artifacts-in-your-local-maven-repository">Build and install artifacts in your local Maven repository</a></li>
</ul>
</li>
</ul>
</nav>
</aside>
<article class="flex-column me-lg-4">
<p><a href="https://maven.apache.org">Apache Maven</a> is a tool to help Java projects manage
their dependencies on library code, such as Jena. By declaring a dependency on
the core of Jena in your project&rsquo;s <code>pom.xml</code> file, you will get the
consistent set of library files that Jena depends on automatically added too.</p>
<p>This page assumes you have Maven installed on your computer. If this is not the case,
please read and follow <a href="https://maven.apache.org/download.html#Installation">these instructions</a>.</p>
<h3 id="repositories">Repositories</h3>
<p>Released maven artifacts are mirrored to the central maven repositories.</p>
<p>Development snapshots are available as well.<br>
<a href="https://repository.apache.org/content/repositories/snapshots/">https://repository.apache.org/content/repositories/snapshots/</a></p>
<p>Stable Jena releases are automatically mirrored by the central Maven
repositories, so there will normally be no need to add any extra
repositories to your <code>pom.xml</code> or <code>settings.xml</code>.</p>
<h3 id="specifying-jena-as-a-dependency">Specifying Jena as a dependency</h3>
<p>This is how to specify in your pom.xml file the dependency
on a version of Jena:</p>
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">&lt;dependency&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;groupId&gt;</span>org.apache.jena<span style="color:#008000;font-weight:bold">&lt;/groupId&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;artifactId&gt;</span>apache-jena-libs<span style="color:#008000;font-weight:bold">&lt;/artifactId&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;type&gt;</span>pom<span style="color:#008000;font-weight:bold">&lt;/type&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;version&gt;</span>X.Y.Z<span style="color:#008000;font-weight:bold">&lt;/version&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">&lt;/dependency&gt;</span>
</span></span></code></pre></div><p>This will transitively resolve all the dependencies for you: <code>jena-core</code>,
<code>jena-arq</code>, <code>jena-tdb</code> and <code>jena-iri</code> and their dependencies.</p>
<p>Note the use of <code>&lt;type&gt;pom&lt;/type&gt;</code> above.</p>
<p>Other modules need to be added separately, for example:</p>
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">&lt;dependency&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;groupId&gt;</span>org.apache.jena<span style="color:#008000;font-weight:bold">&lt;/groupId&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;artifactId&gt;</span>jena-text<span style="color:#008000;font-weight:bold">&lt;/artifactId&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;version&gt;</span>x.y.z<span style="color:#008000;font-weight:bold">&lt;/version&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">&lt;/dependency&gt;</span>
</span></span></code></pre></div><p>Please check for the latest versions.</p>
<h3 id="major-artifacts">Major Artifacts</h3>
<p>Jena provides a number of maven artifacts as delivery points.<br>
There are also a number of maven artifacts used as part of
structuring Jena development.</p>
<table>
<tr>
<th>Artifact ID</th>
<th>Packaging (&lt;type&gt;)</th>
<th>Description</th>
</tr>
<tr>
<td><code>apache-jena-libs</code></td>
<td><code>pom</code></td>
<td>A POM artifact that may be referenced to pull in all the standard Jena Libraries (Core, ARQ, IRI, and TDB) with a single dependency.</td>
</tr>
<tr>
<td><code>apache-jena</code></td>
<td><code>pom</code></td>
<td>The binary distribution</td>
</tr>
<tr>
<td><code>apache-jena-fuseki</code></td>
<td><code>pom</code></td>
<td>Fuseki2 distribution</td>
</tr>
<tr>
<td><code>jena</code></td>
<td></td>
<td>The formal released source-released for each Jena release. This is not a maven-runnable set of binary files</td>
</tr>
<tr>
<td><code>jena-fuseki-main</code></td>
<td><code>war</code></td>
<td>Fuseki packaged for standalone and embedded use.<td>
</tr>
<tr>
<td><code>jena-text</code></td>
<td><code>jar</code></td>
<td>SPARQL Text Search. Included in Fuseki.</td>
</tr>
<tr>
<td><code>jena-shacl</code></td>
<td><code>jar</code></td>
<td>SHACL engine for Jena.</td>
</tr>
<tr>
<td><code>jena-shex</code></td>
<td><code>jar</code></td>
<td>ShEx engine for Jena.</td>
</tr>
<tr>
<td><code>jena-serviceenhancer</code></td>
<td><code>jar</code></td>
<td>Bulk retrieval and caching for SERVICE clauses</td>
</tr>
<tr>
<td><code>jena-querybuilder</code></td>
<td><code>jar</code></td>
<td>A utility package to simplify the building of ARQ queries in code.
</td>
</tr>
<tr>
<td><code>jena-permissions</code></td>
<td><code>jar</code></td>
<td>Security wrapper around Jena RDF implementation.</td>
</tr>
<tr>
<td><code>jena-jdbc-driver-bundle</code></td>
<td><code>jar</code></td>
<td>A collection of JDBC drivers</td>
</tr>
</table>
<p>There are also a number of artifacts used in development.
The full list can be seen by browsing Maven</p>
<p><a href="https://repo1.maven.org/maven2/org/apache/jena/">Released Jena artifacts</a></p>
<p>(This includes historic artifacts which are no longer active.)</p>
<p>You can run <code>mvn dependency:tree</code> to print the dependency
tree.</p>
<h3 id="specifying-dependencies-on-snapshots">Specifying dependencies on SNAPSHOTs</h3>
<p>If you want to depend on Jena development snapshots and help with Jena
development, e.g. to get access to recent bug fixes for testing, you
should add the following to your <code>pom.xml</code>:</p>
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">&lt;repository&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;id&gt;</span>apache-repo-snapshots<span style="color:#008000;font-weight:bold">&lt;/id&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;url&gt;</span>https://repository.apache.org/content/repositories/snapshots/<span style="color:#008000;font-weight:bold">&lt;/url&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;releases&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;enabled&gt;</span>false<span style="color:#008000;font-weight:bold">&lt;/enabled&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;/releases&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;snapshots&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;enabled&gt;</span>true<span style="color:#008000;font-weight:bold">&lt;/enabled&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">&lt;/snapshots&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">&lt;/repository&gt;</span>
</span></span></code></pre></div><h3 id="build-and-install-artifacts-in-your-local-maven-repository">Build and install artifacts in your local Maven repository</h3>
<p>If you want you can check out the Jena sources, build the artifacts and
install them in your local Maven repository, then you simply check out the source
tree and build with maven
<code>mvn install</code>. This assumes you have Maven and Git installed:</p>
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ git clone https://github.com/apache/jena/
</span></span><span style="display:flex;"><span>$ <span style="color:#a2f">cd</span> jena
</span></span><span style="display:flex;"><span>$ mvn clean install
</span></span></code></pre></div><p>Each of the modules can be built on its own, but they
require the current snapshots and Jena parent POM to be installed.</p>
</article>
<aside class="text-muted align-self-start mb-3 mb-xl-5 p-0 d-none d-xl-flex flex-column sticky-top">
<h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
<nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#repositories">Repositories</a></li>
<li><a href="#specifying-jena-as-a-dependency">Specifying Jena as a dependency</a></li>
<li><a href="#major-artifacts">Major Artifacts</a></li>
<li><a href="#specifying-dependencies-on-snapshots">Specifying dependencies on SNAPSHOTs</a></li>
<li><a href="#build-and-install-artifacts-in-your-local-maven-repository">Build and install artifacts in your local Maven repository</a></li>
</ul>
</li>
</ul>
</nav>
</aside>
</main>
</div>
</div>
</div>
<footer class="bd-footer py-4 py-md-5 mt-4 mt-lg-5 bg-body-tertiary">
<div class="container" style="font-size:80%" >
<p>
Copyright &copy; 2011&ndash;2024 The Apache Software Foundation, Licensed under the
<a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
</p>
<p>
Apache Jena, Jena, the Apache Jena project logo, Apache and the Apache feather logos are trademarks of
The Apache Software Foundation.
<br/>
<a href="https://privacy.apache.org/policies/privacy-policy-public.html"
>Apache Software Foundation Privacy Policy</a>.
</p>
</div>
</footer>
<script src="/js/popper.min.js.js" type="text/javascript"></script>
<script src="/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/js/improve.js" type="text/javascript"></script>
<script type="text/javascript">
(function() {
'use strict'
const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
if (links !== undefined && links !== null) {
for (const link of links) {
link.classList.add('active')
let parentElement = link.parentElement
let count = 0
const levelsLimit = 4
while (['UL', 'LI'].includes(parentElement.tagName) && count <= levelsLimit) {
if (parentElement.tagName === 'LI') {
parentElement.querySelector('a:first-child').classList.add('active')
}
parentElement = parentElement.parentElement
count++
}
}
}
})()
</script>
</body>
</html>