【问题标题】:Build delphi project in jenkins在 jenkins 中构建 delphi 项目
【发布时间】:2015-03-12 07:25:47
【问题描述】:

我正在尝试在我的公司中设置 jenkins,但遇到了一些问题。 我使用这个命令来构建项目:

SET MSBuild="C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe"
SET BUILDS=C:\Program Files (x86)\Jenkins\jobs\xxx\builds\
SET OUTPUT_PATH="%BUILDS%%BUILD_NUMBER%"
SET RSVARS="C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin\rsvars.bat"
CALL %RSVARS%
SET PATH=%PATH%;D:\komponenty\DXE3\ADSI
%MSBuild% xxx.dproj /t:Build /p:Config=Debug;Platform=Win32;DCC_ExeOutput=%OUTPUT_PATH% /maxcpucount:4

当我在 cmd 中键入它时它工作正常但是。我给 jenkins 服务提供了管理权限。当我尝试使用 jenkins 构建项目时,我收到如下错误:

F1026: File not found: 'ADSI.dcu

这是 Delphi 的一个组件,我在第二个分区上有这个组件。 Jenkins 可以访问此分区上的许多组件,但不能访问此分区。

【问题讨论】:

  • 您正在使用搜索路径。这些设置如何?我个人总是觉得搜索路径让您不确定正在构建文件的哪个版本。我总是在 dpr 中包含所有源文件,然后我就知道我在构建什么。然后我不需要任何搜索路径。你所做的就是从 vcs 中签出,源代码都在该树下。
  • 也许执行搜索以找到文件ADSI.dcu 所在的位置。从命令行构建时,您可能会选择与您期望的文件不同的文件。这可能是有益的。我还建议将.dcus 输出到单个文件夹,我同意大卫的评论;如果您的编码人员按照与您的构建相同的标准构建,它可以节省大量的悲伤。
  • 我想D:\komponenty\DXE3\ADSI 是您的项目源所在的位置?添加到 PATH 环境变量中不是一个好主意。而只是确保您在正确的工作文件夹中进行构建。

标签: delphi jenkins continuous-integration components


【解决方案1】:

两者之间的区别在于您的当前目录。
Jenkins 将在一个特定的工作文件夹中开始您的工作(可能是 C:\Users\<User-ID>\.jenkins\jobs\<Job-Name>\workspace)。

将以下内容添加到您的 Jenkins 命令中,以查看您从哪里进行构建:

echo Current Folder: %cd%

一个简单的“解决方案”是在 Jenkins 中添加一个命令,将目录更改为您从命令行进行测试时所在的文件夹。

但是,我建议您执行以下操作:

  • 确保 Jenkins 从您的源存储库中获取最新的源到其工作文件夹。 (根据您使用的特定工具,有各种插件。)
  • 确保cd(更改目录)到工作区文件夹中的正确文件夹。

【讨论】:

    猜你喜欢
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多