Delphi分布式构建失败

标签 delphi jenkins build distributed spring4d

我创建了一个小项目 [0] 来在受控环境中重现错误。事实上,我正在使用 Jenkins 来构建我的项目,一个大项目,我想进行一些并行构建。让我用图形来表示

[MyBasicPackage] -----> [MyPackageTester] ------> [MyBasicApp]
      .
      .
      +-----> [...]
      +-----> [...]

这是我在 [0] 上创建的组织,我在 spring 容器上注册了一个类 TMyUnit (MyBasicPackage) 进行测试。我构建它并生成它的 .dcu、.bpl 等。 第二阶段,我构建需要 MyBasicPackageMyPackageTester。最后,我构建了需要 MyPackageTester 的应用程序。到目前为止一切顺利。

当我尝试在 PC-00 上构建我的 MyBasicPackage 时,获取工件并尝试在 MyPackageTester 上构建 MyPackageTester strong>PC-06(相同的架构,相同的操作系统,相同的IDE,相同的spring4d版本),并且出现了一个不错的错误:

Unit TMyUnit was compiled with a different version of Spring.Container.Registration

因此,我在两台机器(PC-00PC-06)上更新了 spring4d 并构建了它们。运行...并出现同样的错误。 检查库路径选项(C:\Program Files (x86)\Embarcadero\Studio\14.0\Componentes\spring4d\Library\DelphiXE6\Win32\Debug),删除 dcu 文件并再次构建它们两台机器,同样的错误。 将 dcu 文件从 PC-00 复制到 PC-06 以避免出现任何类型的系统配置和相同的错误。

也许我正在尝试做一些目前为止不可能的事情。我用谷歌搜索了几天,但没有成功。

有什么想法吗?

请随意 fork 或拉取示例;)

问候

[0] https://github.com/graguirre/DelphiDepencyExample

最佳答案

在您的情况下,您需要使用 Spring.Core 运行时包进行构建。这不仅可以防止此错误,而且您的代码实际上可以工作。

如果您不这样做,那么所有模块都将保留您正在使用的 GlobalContainer 实例的自己版本,并且什么都不会起作用。

关于Delphi分布式构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32943653/

相关文章:

windows - Delphi Windows服务设计

mysql - 未知的 MYSQL 服务器主机 'ServerName' (11001)

Jenkins Pipeline - 工作流 CPS 插件 JAR 依赖项

docker - 如何将构建输出重定向到文件?

python - 如何判断waf选择的工具?

.net - 控制台应用程序不会在构建时生成可执行文件

delphi - 在 SQLite 数据库(Delphi)中存储日期时间值的最佳方式

ios - Firemonkey Windows/iOS 兼容代码

maven - 使用Gradle,Jenkins和Sonar实现CI/CD Flow

java - 如何使用 findbugs-maven-plugin 生成一份报告?