以前我让 Jenkins 启动了一个 perl 构建脚本,在脚本执行过程中的某个时间点会打开一个 .bat 文件来启动我们的 ANT 作业。我正在尝试合并和删除 .bat 文件并直接从 perl 脚本启动 ANT。我已经能够成功地做到这一点,但问题是 ANT 脚本查看其变量的 .properties 文件不再像 .bat 文件启动 ANT 脚本时那样正确导入。
目前我只是被称为“Exec(“ant -buildfile C:\project\buildfile.xml”),它会触发蚂蚁,但它会返回一个错误,“找不到 ${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