基本的なJenkins パイプラインをまとめましたが、ほとんどの部分で期待どおりの動作をします。
ただし、私は ant を使用しており、特定の jar ファイルへのアクセスが必要です。ビルドステップを次のように指定しました:
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'
}
このパイプラインで実行したビルドは失敗し、次のエラーが生成されます。
java.lang.ClassNotFoundException: org.dita.dost.module.GenMapAndTopicListModule
私が知る限り、これは ant が dita ot にある dost.jar にアクセスできないことが原因です。dost.jar を具体的に参照するなど、さまざまな方法でこの引数を定義しようとしましたが (含める jar が多数あります)、毎回同じエラーで失敗します。
Jenkins でスタンドアロンの ant プロジェクトをまとめると、ant は上記の引数を使用して jar に問題なくアクセスできます。パイプラインでこの引数/依存関係を提供するより良い方法はありますか?
更新: ビルド スクリプトにクラスパスの echo ステートメントを追加し、ビルド スクリプトのクラスパスに jar を追加すると実際に機能することを確認できました。したがって、すべての意図と目的のために、ant はターゲットに関連するすべてのベース ツールキット jar にアクセスできますが、エラーは解決しません。この時点で、問題は dita ot 自体ではなく、jenkins パイプラインの動作に関係しているように見えますか?