55 lines
1.1 KiB
Markdown
55 lines
1.1 KiB
Markdown
# new-shapes
|
|
|
|
A shape editor desktop application built with Java Swing. Supports rectangles, circles, triangles, text, shape collections, resize handles, and export to HTML/SVG.
|
|
|
|
## Prerequisites
|
|
|
|
- JDK >= 16 (project targets Java 16)
|
|
- A graphical display (X11/Wayland) since this is a Swing GUI application
|
|
|
|
## Bootstrap
|
|
|
|
### With Nix (recommended)
|
|
|
|
If you have [direnv](https://direnv.net/) installed, the environment activates automatically:
|
|
|
|
```sh
|
|
direnv allow # one-time, then auto-activates on cd
|
|
```
|
|
|
|
Otherwise, enter the dev shell manually:
|
|
|
|
```sh
|
|
nix develop
|
|
```
|
|
|
|
Both provide JDK 17 and Maven 3.9.x preconfigured. No other setup needed.
|
|
|
|
### Without Nix
|
|
|
|
Install JDK 16+ and use the bundled Maven wrapper — no separate Maven installation required:
|
|
|
|
```sh
|
|
./mvnw --version # downloads Maven 3.9.12 on first run
|
|
```
|
|
|
|
## Run the application
|
|
|
|
```sh
|
|
./mvnw compile exec:java -Dexec.mainClass="ovh.gasser.newshapes.App"
|
|
```
|
|
|
|
## Run tests
|
|
|
|
```sh
|
|
./mvnw test
|
|
```
|
|
|
|
To run the full verification pipeline (compile, test, JaCoCo coverage check with 50% minimum line coverage):
|
|
|
|
```sh
|
|
./mvnw verify
|
|
```
|
|
|
|
Coverage reports are generated in `target/site/jacoco/`.
|