mvnx 0.1.0

A clean and readable Maven wrapper for multi-module projects
Documentation

mvnx

Maven wrapper skrevet i Rust som gir ryddig og lesbar utdata for flerfoldige prosjekter.

Funksjoner

  • Ryddig utdata: Viser kun vesentlig informasjon
  • Reaktor bygge rekkefølge: Viser rekkefølgen moduler bygges i
  • Framdriftsindikator: Viser hvilken modul som bygges for tiden
  • Byggesammendrag: Viser:
    • Reaktor bygge rekkefølge
    • Modulstatus (OK/FAIL) med tidsforbruk
    • Samlet byggestatus og total tidsforbruk
  • Testfeildetaljer: Viser stacktraces for feilede tester (fra både .txt og XML rapporter)
  • XML-basert feilparsing: Parser Maven Surefire XML-rapporter for detaljerte feilmeldinger
  • Dad jokes: Valgfri humor under byggingen
  • Clipboard kopiering: Kopierer stacktraces til utklippstavlen automatisk

Bruk

Wrapperen tar de samme argumentene som mvn:

# Grunnleggende bygg
mvnx clean install

# Hopp over tester
mvnx clean install -DskipTests

# Spesifikt mål
mvnx clean test

# Egendefinerte innstillinger
mvnx -s ~/settings.xml clean package

Spesielle flagg

  • -h, --help: Vis hjelpmelding
  • --mvnhelp: Vis Maven sin hjelpmelding (mvn --help)
  • --clip: Kopier stacktrace til utklippstavlen når det oppstår nøyaktig en testfeil
  • -j: Vis dad jokes hvert 30. sekund under byggingen
  • -ji <sekunder>: Vis dad jokes med egendefinert intervall (impliserer -j)

Eksempler:

mvnx clean install
mvnx --clip test
mvnx -j clean install
mvnx -ji 20 test
mvnx --clip -j package

Utdataeksempel

> Building module-a
> Building module-b

================================================================================
BUILD SUMMARY
================================================================================

Reactor Build Order:
  1. module-a
  2. module-b

Module Status:
  OK module-a [2.34s]
  OK module-b [5.67s]

Overall Status: OK SUCCESS
Total Time: 8.01s
Tests: 45 run, 43 passed, 2 failed

================================================================================
TEST FAILURES
================================================================================

[module-b]

--- TestFailureTest.txt ---
java.lang.AssertionError: Expected 42 but got 41
  at TestFailureTest.testSomething(TestFailureTest.java:15)

Stacktrace copied to clipboard.

Testing

Kjør enhetstestene:

cargo test

Testene dekker:

  • Parsing av reaktor moduler fra Maven-utdata
  • Parsing av modulbyggstartlinjer
  • Parsing av testresultatsammendrag
  • Filtrering av stacktraces (fjerner rammeverkslinjer, beholder bruker-kode)
  • Parsering av Maven Surefire XML-rapporter for feilmeldinger og errorer

Installasjon

Bygg fra kildekode

cargo build --release
# Binær på ./target/release/mvnx

Legg til i PATH

Kopier binæren til en lokasjon i PATH:

cp target/release/mvnx ~/.local/bin/
# eller
sudo cp target/release/mvnx /usr/local/bin/

Bruk det da som:

mvnx clean install

Hvordan det fungerer

Wrapperen:

  1. Starter Maven som en underprosess
  2. Fanger og parser dens stdout-utdata
  3. Trekker ut nøkkelinformasjon:
    • Reaktor modul rekkefølge
    • Modulbygging framgang
    • Bygje fullføring status og tidsforbruk
    • Testfeilinformasjon
  4. Parser Maven Surefire rapporter:
    • Leser .txt filer for sammendrag
    • Leser TEST-*.xml filer for detaljerte stacktraces og feilmeldinger
    • Filtrerer ut rammeverks-relaterte stacktracelinjer
  5. Viser en ryddig sammendrag med feildetaljer
  6. Avslutter med Mavens utgangskode

Krav

  • Maven installert og tilgjengelig i PATH
  • Et clipboard-verktøy:
    • wl-copy (Wayland)
    • xclip (X11)
    • pbcopy (macOS)

Begrensninger

  • Optimalisert for standard Maven-utdataformat
  • Testfeil parsing kan trenge justering basert på ditt testframework
  • Krever mvn installert og i PATH