Nic*_*ges 9 delphi msbuild hudson environment-variables jenkins
我正在尝试使用Jenkins来编译使用Delphi创建的MSBuild项目.我有安装到Jenkins并配置的MSBuild插件.我正在为我的构建作业选择特定的配置.
我已经在Jenkins编译器所需的Jenkins中设置了所有环境变量(对于Delphi类型,来自rsvars.bat).
该项目在命令行上编译得很好.如果我在命令行上执行此操作,MSBuild将报告一个很好的大胖PATH(正确的)作为它用于调用Delphi编译器的命令行的一部分.
但是,当我尝试将它与Jenkins一起使用时,结果却截然不同:
C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin\dcc32.exe -$D- -$L- -$Y- --no-config -B -Q -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DRELEASE -K00400000 HTMLWriterTestApp.dpr
Embarcadero Delphi for Win32 compiler version 22.0
Copyright (c) 1983,2010 Embarcadero Technologies, Inc.
Run Code Online (Sandbox Code Playgroud)
Noet完全没有路径,或者任何其他信息都是为了找到编译器需要的东西.当我从命令行运行时,此信息就在那里.
任何人都可以想到为什么Jenkins无法获得正确的PATH信息?
Jas*_*ger 14
根据您运行Jenkins的方式,它可能没有您以前看到的完整路径行.例如,如果您将Jenkins作为Windows服务运行并填充了USERS PATH变量,则不一定要为SYSTEM用户填充它.在这种情况下,请将服务使用的登录帐户修改为您的帐户,而不是系统帐户.
小智 5
我让Jenkins在Glassfish内部的服务器上运行,作为本地系统帐户运行,因为它已安装,通过使用此博客文章的派生,我能够通过在"系统配置"中设置属性变量来使其工作詹金斯的(詹金斯环境注入插件).(BDS,BDSCOMMONDIR,FrameworkDir,FrameworkSDKDir等...)
然后,Delphi获取适当路径的技巧是将命令行参数"Win32LibraryPath"发送到MSBuild.确保在Jenkins中使用此参数中的双引号转义,否则您将拔出头发.