Apache Maven 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’s pom.xml
file, you will get the
consistent set of library files that Jena depends on automatically added too.
This page assumes you have Maven installed on your computer. If this is not the case, please read and follow these instructions.
Repositories
Released maven artifacts are mirrored to the central maven repositories.
Development snapshots are available as well.
https://repository.apache.org/content/repositories/snapshots/
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 pom.xml
or settings.xml
.
Specifying Jena as a dependency
This is how to specify in your pom.xml file the dependency on a version of Jena:
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>apache-jena-libs</artifactId>
<type>pom</type>
<version>X.Y.Z</version>
</dependency>
This will transitively resolve all the dependencies for you: jena-core
,
jena-arq
, jena-tdb
and jena-iri
and their dependencies.
Note the use of <type>pom</type>
above.
Other modules need to be added separately, for example:
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-text</artifactId>
<version>x.y.z</version>
</dependency>
Please check for the latest versions.
Major Artifacts
Jena provides a number of maven artifacts as delivery points.
There are also a number of maven artifacts used as part of
structuring Jena development.
Artifact ID | Packaging (<type>) | Description | |
---|---|---|---|
apache-jena-libs |
pom |
A POM artifact that may be referenced to pull in all the standard Jena Libraries (Core, ARQ, IRI, and TDB) with a single dependency. | |
apache-jena |
pom |
The binary distribution | |
apache-jena-fuseki |
pom |
Fuseki2 distribution | |
jena |
The formal released source-released for each Jena release. This is not a maven-runnable set of binary files | ||
jena-fuseki-main |
war |
Fuseki packaged for standalone and embedded use. | |
jena-text |
jar |
SPARQL Text Search. Included in Fuseki. | |
jena-shacl |
jar |
SHACL engine for Jena. | |
jena-shex |
jar |
ShEx engine for Jena. | |
jena-serviceenhancer |
jar |
Bulk retrieval and caching for SERVICE clauses | |
jena-querybuilder |
jar |
A utility package to simplify the building of ARQ queries in code. | |
jena-permissions |
jar |
Security wrapper around Jena RDF implementation. |
There are also a number of artifacts used in development. The full list can be seen by browsing Maven
(This includes historic artifacts which are no longer active.)
You can run mvn dependency:tree
to print the dependency
tree.
Specifying dependencies on SNAPSHOTs
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 pom.xml
:
<repository>
<id>apache-repo-snapshots</id>
<url>https://repository.apache.org/content/repositories/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
Build and install artifacts in your local Maven repository
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
mvn install
. This assumes you have Maven and Git installed:
$ git clone https://github.com/apache/jena/
$ cd jena
$ mvn clean install
Each of the modules can be built on its own, but they require the current snapshots and Jena parent POM to be installed.