It is not normally necessary to build from source. Apache Jena provides already-built maven artifacts, available from the central maven repositories.
See http://jena.apache.org/download/
For most usage, there is no requirement to build from source. Use maven or other build system that can download from the central repositories.
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>apache-jena-libs</artifactId>
<type>pom</type>
<version>X.Y.Z</version>
</dependency>
The latest Apache Jena Fuseki can be obtained via http://jena.apache.org/download/.
There is also a package of libraries for offline installation.
Building Jena requires a Java8 JDK, Maven 3, and a network connection.
You can get the current development code by cloning:
git clone https://github.com/apache/jena/
or the Apache primary code repository for Jena:
git clone https://git-wip-us.apache.org/repos/asf/jena.git
For the signed source of the latest release, go to:
http://apache.org/dist/jena/source/
with previous versions available at:
http://archive.apache.org/dist/jena/source/
These are the formal files that define an Apache Jena release.
Apache Jena uses maven as its build system.
mvn clean install
A faster, but abbreviated, build of the main modules, including ARQ, TDB, command line tools and Fuseki2.
mvn clean install -Pdev
Once the whole of Jena has been built once, individual modules can be incrementally built using maven in their module directory.
To quickly build the whole project, skipping tests (but building them because that's required) and skipping javadoc generation:
mvn -DskipTests -Dmaven.javadoc.skip=true clean install
Build only a specific module (e.g. jena-arq
) and its dependencies
mvn -pl :jena-arq -am install
Also useful:
-Drat.skip
Skips checking for license headers; useful during development.
To work with the Jena source in an IDE, it is only necessary to import modules of interest.
When importing modules, avoid including modules twice. This happens when including both a module and also its parent POM because the parent POM includes the module within its directory tree.
This happens if the top level POM is included, as well as jena-db
and
jena-fuseki2
as well as jena-extras
and jena-jdbc
.
Artifacts that provide shaded jars should not normally be imported, especially
jena-shaded-guava
. Other shared jars included jena-fuseki-server
and
jena-fuseki-fulljar
.
jena-shaded-guava
will be obtained from a maven repository or from a local run
of mvn.
The TDB tests on Microsoft Windows use a large amount of temporary disk space. This is because databases can not be completely deleted until the JVM exits on this operating system.