Files
JavadocViewerService/README.md
T

82 lines
2.8 KiB
Markdown

# JavadocViewerService
## Preface
This project Spring Boot web service that automatically fetches, manages, and serves Javadoc documentation for Maven artifacts. \
Currently, only the latest version is taken into account.
If you encounter any bugs or find missing features, feel free to report them on
the [GitHub Issues page](https://github.com/th-schwarz/JavadocViewerService/issues).
## Features
- Retrieves Javadoc JARs from Maven Central or custom Maven repositories
- Tracks multiple Maven artefacts with version detection (only the latest version is taken into account).
- Delivers generated Javadoc content via a simple bootstrap web interface
- Scheduled updates via a configurable cron expression
## Requirements
At least JRE-21 or docker
## Start
Packages can be found at [Gitea Packages](https://git.mein-gateway.de/thischwa/JavadocViewerService/packages).
### ... with Java
```bash
java -jar jdvc-<version>.jar --spring.config.import=file:./jdvs.yml
```
### .. with Docker
```yaml
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):
```yaml
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
```