blob: 69edf52c922acdaaf77b384ee176205e29cf7bb1 [file] [log] [blame]
= Apache James website
This repository is used for storing (some) content for[Apache James] website.
It's also used to build and publish the website.
== How to build the website
We use[Antora] as a tool to manage and generate the website.
We use[Gradle] as a tool to drive / automate the tasks for generating, aggregating and publishing the website.
=== Why Antora?
Antora lets us aggregate multiple documentation sources, across multiple versions and publish them as a single website.
Documentation for each Apache James component is kept and versioned alongside the code for it.
=== Why Gradle?
Gralde allows us to autoamte the tasks that we do when publishing a website.
We write gradle tasks for building and publishing the website.
We can run those tasks locally and inside our CI infrastructure:[Apache Builds].
More specifically, we use Gradle to:
* Download and install a specific version of[NodeJS] using[Gradle Node Plugin]
* Install a local version of Antora
* Use a Gradle task to call build the website with Antora
By using this specific flow, you only need `git`, `Java` and shell access to build the website.
All other dependencies are installed automatically by Gradle.
Even Gradle is downloaded and installed using the Gradle wrapper script.
== How to build the website
# To build the website run
./gradlew clean build
# The website is located here
cd doc-sites/build/site