Ich habe eine grundlegende Jenkins pipeline zusammengestellt und es tut, was ich in den meisten Fällen erwarte.Wie mache ich JAR-Dateien in einer Jenkins-Pipeline für ant verfügbar?
Allerdings verwende ich Ant und es erfordert Zugriff auf bestimmte JAR-Dateien. Ich habe wie so den Build-Schritt angegeben:
stage('Build') {
// Build the project
env.PATH = "${tool 'ant'}/bin:${env.PATH}"
sh 'ant -f dita-tools/build_all.xml -lib $WORKSPACE/dita-ot/lib:$WORKSPACE/dita-ot/lib/saxon'
}
Der Build Ich laufe durch diese Pipeline nicht und erzeugt die folgenden Fehler:
java.lang.ClassNotFoundException: org.dita.dost.module.GenMapAndTopicListModule
Von dem, was ich sagen kann, ist dies Ameise wegen nicht Zugang zu dost.jar haben, das in der dita ot ist. Ich habe versucht, dieses Argument eine Reihe von Möglichkeiten zu definieren, einschließlich der Bezugnahme auf dost.jar (ich habe eine Reihe von Gläsern zu enthalten), aber jedes Mal, wenn es mit dem gleichen Fehler fehlschlägt.
Wenn ich in Jenkins ein eigenständiges Ameisenprojekt zusammenstelle, hat ant keine Probleme mit dem Argument, das ich oben angegeben habe. Gibt es einen besseren Weg für mich, dieses Argument/diese Abhängigkeit in einer Pipeline zu liefern?
UPDATE: Ich habe eine Echo-Anweisung für den Classpath meiner Build-Skript und konnte zu überprüfen, ob in dem Build-Skript zu dem Classpath der Gläser Zugabe in der Tat Arbeit. Also hat ant in jeder Hinsicht Zugriff auf alle relevanten Basis-Toolkit-Jars für das Ziel, aber der Fehler bleibt bestehen. An dieser Stelle scheint es, dass das Problem etwas damit zu tun hat, wie die jenkins-Pipeline im Gegensatz zur dita selbst funktioniert.
Warum nicht nur die lib Stellen in dem Ant-Skript definiert selbst? – CAustin
Ich habe das versucht, aber es hat nicht funktioniert. Kein Zweifel aufgrund eines Benutzerfehlers. Ich denke, du hast Recht. Das sollte eine vollständig praktikable Option sein. Ich werde weiter erkunden. –