为什么 buckminster 不解析我传递的 JVM 参数?

why does buckminster not resolve my passed JVM argument?

我有一份使用 buckminster 构建 eclipse 产品的 jenkins 工作。

一开始我有一个 "Extended Choice Parameter",其中 "customer" 键可以 selected。

在 buckminster 配置中,我将这个 "customer" 变量用于 select 正确的 cquery:

import '${WORKSPACE}/source/scodi-customer/${customer}/server/features/ch.scodi.${customer}.server.feature/site.cquery'

由于变量 "customer" 默认情况下在命令中不可用,我将以下内容添加到 "JVM arguments":

-Dcustomer=${customer}

这一切过去都运行良好,但现在我将服务器和构建环境从 Java 1.7 32 位更新为 Java 1.8 64 位。 从那时起,我在尝试构建时遇到以下错误:

java.io.FileNotFoundException: [Path to job]\source\scodi-customer${customer}\server\features\ch.scodi.${customer}.server.feature\site.cquery (The system cannot find the path specified)

在变量被正确解析之前。
这是一个 buckminster 或 java8 问题,无法解析 ${customer} 变量?是否有另一种(更干净的)方法将变量传递给 buckminster 配置?

编辑:我做了一些进一步的测试并将以下内容添加到 JVM 参数中,我得到了相同的异常,指的是缺少 ${customer}。在我看来,JVM 参数被忽略了。

-Dcustomer=CUSTOMER

我终于找到了解决方法。

我不得不将我的 "customer" 变量重命名为 "CUSTOMER",现在它已在 buckminster 命令区域中解决。

发件人:

import '${WORKSPACE}/source/scodi-customer/${customer}/server/features/ch.scodi.${customer}.server.feature/site.cquery'

收件人:

import '${WORKSPACE}/source/scodi-customer/${CUSTOMER}/server/features/ch.scodi.${CUSTOMER}.server.feature/site.cquery'

还有我的 JVM 参数来自:
-Dcustomer=${客户}
收件人:
-Dcustomer=${CUSTOMER}

发现 JVM 参数与 buckminster 命令接口无关,但稍后在 "cspex" 文件中使用。

运行 Windows 机器上的 Jenkins 这可能会导致这个问题...
所以实际的问题是 "Extended Choice Parameter" 的命名没有被大写。