Frage

Ich habe ein einfaches Maven2-Java-Projekt (JMS-Relaying-System).Nachdem wir die erste Version veröffentlicht hatten, stellten wir fest, dass wir mehr Zeit mit der Konfiguration von Maven verbrachten als mit dem eigentlichen Programmieren.

Für die nächste Version wollten wir den Build-Prozess bereinigen und jemand schlug die Migration zum Builder vor.Also wurde ich damit beauftragt, genau das zu tun.

Ich habe buildr (1.3.4) gemäß der Dokumentation auf ihrer Website eingerichtet.Und dann habe ich im Stammverzeichnis des Projekts den Befehl buildr eingegeben und dann buildr angewiesen, die Build-Datei basierend auf meiner pom.xml zu erstellen.Das hat gut funktioniert und den gesamten Code kompiliert.Bis Buildr mit der Ausführung der Tests begann, war alles in Ordnung.Hier ist die Ausgabe:

Test framework error: taskdef class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask cannot be found

Offensichtlich befindet sich die angegebene Klasse nicht in meinem Klassenpfad.In der Buildr-Dokumentation heißt es jedoch, dass alle für grundlegende Tests erforderlichen Elemente enthalten sind.In ihrer Dokumentation steht nicht, dass sie spezielle Bibliotheken für Ant oder eine Version von Ant benötigen.Obwohl ich ant 1.7.0 installiert habe (allerdings nicht in meinem Klassenpfad enthalten).

Hat das schon mal jemand gesehen?


Aktualisieren

Ich habe das berüchtigte „ant-optional jar“ im Maven-Repository gefunden.Das Einbeziehen dieser Option in meinen test.with hat das Problem nicht behoben.

Wenn Sie den Befehl buildr mit --trace ausführen, erhalten Sie diese zusätzlichen Informationen ...

Tests failed!
/pathtoruby/buildr-1.3.4/lib/buildr/core/test.rb:455:in `run_tests'
/pathtoruby/buildr-1.3.4/lib/buildr/core/test.rb:199:in `initialize'
War es hilfreich?

Lösung

Gefunden das Problem ... Anscheinend gibt es eine Ameise-junit.jar die benötigt wird, aber aus irgendeinem Grunde in meinem lokalen Repository wurde es von root und nicht meinem lokalen Benutzerkonto (OSX-System) gehört. So war es nicht zugänglich Buildr. Ich löschte die Elemente aus meinem lokalen Repository und reran buildr (es die benötigten Elemente heruntergeladen).


Update

Auch verursacht dies einige andere Fragen. Es scheint, dass einige andere Einzelteile in meinem lokalen Repository seltsame Berechtigungen hatten. Ich landete nur meine Repository Archivierung und lassen Maven es rekonstruieren. Dies beschlossen alle meine Fragen. Ich jetzt eine schöne Build-Datei habe, die 25 Zeilen Code ist im Vergleich zu meiner vorherigen pom.xml-Datei, die mehr als 100 Zeilen war.

Andere Tipps

Sie erhalten diesen Fehler, weil sich JUnitTask nicht im Klassenpfad befindet.Ich bin mit Buildr nicht sehr vertraut und kann daher nicht sagen, ob die Angabe der JUnit-JARs erforderlich ist oder nicht. Wenn Buildr jedoch den Systemklassenpfad verwendet, fügen Sie JUnit hinzu und sehen Sie, was passiert.

Sobald Sie bestätigt haben, dass Ihre Builds mit in den Klassenpfad gehacktem JUnit ausgeführt werden, können Sie versuchen, Ihre Konfiguration zu variieren, bis sie wie erwartet ausgeführt wird, oder sie so belassen, wie sie ist.

Können Sie den Verweis auf den relevanten Teil der Dokumentation veröffentlichen?Ich habe (bei meiner sehr kurzen Lektüre der Website) nichts gesehen, was besagt, dass erforderliche Artikel enthalten sind.

Ist es möglich, dass Sie nicht alle Edelsteine ​​heruntergeladen haben?Wenn Sie „gem update --system“ ausführen, um Ruby zu aktualisieren, und dann „gem update buildr“, können Sie sicherstellen, dass alle erforderlichen Abhängigkeiten installiert wurden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top