以前は、Jenkinsにperlビルドスクリプトを起動させました。このスクリプトは、スクリプト中のある時点で、ANTジョブを起動する.batファイルを開きます。.batファイルを統合して削除し、perlスクリプトから直接ANTを起動しようとしています。これは正常に実行できましたが、問題は、ANTスクリプトが変数を検索した.propertiesファイルが、.batファイルがANTスクリプトを起動したときのように正しくインポートされなくなったことです。
現在、私は「Exec( "ant -buildfile C:\ project \ buildfile.xml")」と呼ばれ、antを起動しますが、「$ {script.dir}/barbuildfileが見つかりません」というエラーが返されます。 .xml"。"script.dir"は、ビルドファイルと同じディレクトリにある.propertiesファイルで定義されています。これは、.batファイルで起動すると完全に機能しますが、Perlから呼び出されると失敗します。 。理由は何ですか?それとももっと良いのは、それを修正する方法ですか?
また、起動してプロパティファイルを強制的にロードしてみました。"Exec(" ant -buildfile C:\ project \ buildfile.xml -Dpropertyfile = C:\ project \ build.properties ")"を実行すると、同じエラーが発生します。
編集:これは.batファイルです
set project.name=%1
set environment=%2
set version.tag=%3
set build.list=%4
set JAVA_HOME=C:\ProgramFiles\IBM\jdk
set ANT_HOME=C:\ProgramFiles\IBM\IMShared\plugins\org.apache.ant_1.7.1.v20100518-1145
set PATH=C:\Program Files (x86)\IBM\IMShared\plugins\org.apache.ant_1.7.1.v20100518-1145\bin
CALL ant -buildfile C:\scripts\build_service.xml
Perlスクリプト:
system("set project.name=$project");
system("set environment=$environment");
system("set version.tag=$version");
system("set build.list=$service");
system("set JAVA_HOME=C:\ProgramFiles\IBM\jdk");
system("set ANT_HOME=C:\ProgramFiles\IBM\IMShared\plugins\org.apache.ant_1.7.1.v20100518-1145");
system("set PATH=C:\Program Files (x86)\IBM\IMShared\plugins\org.apache.ant_1.7.1.v20100518-1145\bin");
exec("CALL ant -buildfile C:\\scripts\\build_service.xml