JavadocViewerService

A Spring Boot web service that automatically fetches, manages, and serves Javadoc documentation for Maven artifacts.

Features

  • Fetches Javadoc JARs from Maven Central or custom Maven repositories
  • Tracks multiple Maven artifacts with version detection
  • Serves generated Javadoc via a simple Bootstrap web UI
  • Scheduled updates via configurable cron expression
  • Persists metadata in an embedded H2 database (Liquibase-managed)

Requirements

JRE-21 or docker

Start

... with Java

java -jar jdvc-<version>.jar --spring.config.import=file:./jdvs.yml

.. with Docker

services:
  jvs-dockerized:
    image: git.mein-gateway.de/thischwa/javadocviewerservice:develop
    volumes:
      - /opt/javadocviewerservice-dockerized/jdvs.yml:/app/jdvs.yml:ro
      - /opt/javadocviewerservice-dockerized/database:/app/database
      - /opt/javadocviewerservice-dockerized/javadoc-storage:/app/javadoc-storage
    restart: unless-stopped
    ports:
      - "127.0.0.1:8086:8080"

Volume mapping:

Mount Purpose
jdvs.yml:/app/jdvs.yml:ro Injects the repository configuration (which artifacts to track) as read-only — the only file you need to edit
database:/app/database Persists the H2 database so tracked version metadata survives restarts and image updates
javadoc-storage:/app/javadoc-storage Persists generated Javadoc HTML so it is not lost on container recreation

Configuration

application.yml

Key defaults:

Property Default Description
jdvs.base-dir ./javadoc-storage Storage root for generated Javadoc
jdvs.cron 0 0/30 * * * ? Update schedule (every 30 min)
jdvs.clean-on-start false Wipe storage and DB on startup
jdvs.run-on-start false Run update immediately on startup
jdvs.maven-central-url https://repo1.maven.org/maven2 Default Maven repository

jdvs.yml

Defines the repositories to track and individual settings (all key defaults can be overridden):

jdvs:
  repositories:
    - name: my-lib
      group-id: com.example
      artifact-id: my-lib
      # maven-repo-url: https://custom.repo/maven  # optional, defaults to Maven Central
S
Description
Service that automatically fetches, manages, and serves Javadoc documentation for Maven artifacts.
Readme MIT 186 KiB
Languages
Java 89%
HTML 6.4%
Dockerfile 4.6%