Blog

Verwendung von FitNesse mit dem Maven 2 Klassenpfad

Marco Mulder

Aktualisiert Oktober 23, 2025
2 Minuten

Wenn Sie mit Maven 2 und FitNesse arbeiten, ist es wünschenswert, den Maven-Klassenpfad in FitNesse zu verwenden. Das FitNesse Maven Plugin kann dies für die Ausführung von Tests in einem Build tun, aber nicht für die interaktive Verwendung von FitNesse.

Als ich nach einer Lösung googelte, war der erste Treffer, den ich erhielt, ein Blog meines Xebian-Kollegen Erik Pragt, der sich mit diesem Problem befasst. Ein Nachteil seines Ansatzes ist, dass er keine transitiven Abhängigkeiten behandelt. Deshalb musste ich mein eigenes Skript schreiben. Es verwendet eine Technologie, die etwas weniger ausgeklügelt ist als die von Erik verwendete. Aber das hat mich nicht davon abgehalten, es mit Ihnen zu teilen, also hier ist es:

#!/bin/bash
CLASSPATH_PAGE=FitNesseRoot/MyTests/content.txt
echo "!inhalt"  >  $CLASSPATH_PAGE
echo  >>  $CLASSPATH_PAGE
# Fügen Sie zunächst den Ausgabeordner des fitnesse-Projekts zum Klassenpfad hinzu
echo "!path target/classes"  >>  $CLASSPATH_PAGE
# Fügen Sie dann die Ausgabeordner der anderen Projekte hinzu.
für i in  ls ../*/target/classes | grep "target/classes:" | tr ":" " "
tun
  echo "!pfad ${i}"  >>  $CLASSPATH_PAGE
fertig
echo  >>  $CLASSPATH_PAGE
# Dann geben Sie die Jars auf dem Maven-Klassenpfad aus.
mvn dependency:build-classpath | grep -v INFO | grep -v Herunterladen  
  | tr ":" "n" | sed "s/^/-path /" | sed "s/.*.m2/repository/!path ${MAVEN_REPO}/"
 
    >>  $CLASSPATH_PAGE

Bevor Sie es verwenden, beachten Sie bitte Folgendes:

  • Das Skript erzeugt eine Seite mit Klassenpfadeinträgen an einem durch CLASSPATH_PAGE angegebenen Ort. Sie müssen die CLASSPATH_PAGE in Ihre eigene Seite ändern.
  • Der generierte Klassenpfad geht davon aus, dass die Java-Systemeigenschaft MAVEN_REPO gesetzt ist. Dies können Sie erreichen, indem Sie das Skript FitNesse run.sh aktualisieren und -DMAVEN_REPO=echo ~/.m2/repository/ einfügen.

Ich habe versucht, es in ein Windows-Skript zu übersetzen, bin aber auf das Problem gestoßen, dass der Maven-Klassenpfad größer war als die Windows-Beschränkung von 8192 Zeichen. Wenn Sie eine Lösung für dieses Problem finden (außer der Verwendung von Cygwin), teilen Sie sie bitte mit uns!

Verfasst von

Marco Mulder

Contact

Let’s discuss how we can support your journey.