blob: c3f5647188ed9dea9ea8ea01ff0502f69667488e [file] [log] [blame] [view]
Apache Jena : Build from Source
===============================
It is not normally necessary to build from source. Apache Jena provides already-built maven artifacts, available from the central maven repositories.
## Binaries
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.
## Source
Building Jena requires a Java8 JDK, Maven 3, and a network connection.
### Obtain the source
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.
### Build the source
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.
## IDE setup
### Avoid multiple imports
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`.
### Avoid output modules
Artifacts that provide shaded jars should not normally be imported,
such as `jena-fuseki-server`.
## Build Notes
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.