在Bazel中,是否可以使用函数输出作为load语句的输入?

在Bazel中,是否可以使用函数输出作为load语句的输入?,bazel,Bazel,在Bazel中,是否可以使用简单的函数和变量作为load语句的输入 例如: my_workspace=“a”+“b” 加载(我的工作区“foo”) 加载(我的工作区,“栏”) 警告:目标模式分析失败 错误:加载包“loadtest/simple”时出错:加载语句格式错误 确切的错误消息可能已随版本而更改,我将看到: “我的工作区”出现语法错误:应为字符串文字 但不可以,只能使用字符串文字,如下所示: 使用load语句从扩展导入符号 参数必须是字符串文字(无变量) 确切的错误消息可能已随版本而

在Bazel中,是否可以使用简单的函数和变量作为load语句的输入

例如:

my_workspace=“a”+“b”
加载(我的工作区“foo”)
加载(我的工作区,“栏”)
警告:目标模式分析失败

错误:加载包“loadtest/simple”时出错:加载语句格式错误


确切的错误消息可能已随版本而更改,我将看到:

“我的工作区”出现语法错误:应为字符串文字

但不可以,只能使用字符串文字,如下所示:

使用
load
语句从扩展导入符号

参数必须是字符串文字(无变量)


确切的错误消息可能已随版本而更改,我将看到:

“我的工作区”出现语法错误:应为字符串文字

但不可以,只能使用字符串文字,如下所示:

使用
load
语句从扩展导入符号

参数必须是字符串文字(无变量)


你为什么需要这个?也许有另一种方法可以实现您想要的。@erra工作区名称是由工具生成的,因此它们是使用函数计算的。我认为除了使用构建和工作区文件外,您无法控制加载阶段。也许您可以尝试创建一个计算要加载哪个工作区,加载它,然后将它绑定到一个常量名称。该常量名称是您将在生成文件中引用的名称。可以使用存储库创建要加载其他工作区的工作区_rule@Erran你的意思是我可以通过编程从
的“友好名称”到
的“编程名称”创建一个“别名”(工作区本地)
?然后消费者可以编写
load(“友好的名称”、“foo”)
,Bazel会将其解释为
load(“编程的名称”、“foo”)
不完全正确。简而言之,
repository\u规则
在实例化时会生成一个工作区。在这种情况下,当生成所述工作区时,该规则将生成一个
工作区
文件,其中包含
本地存储库
规则。每个
本地存储库的
名称
友好的\u名称
路径
将是
编程的\u名称\u e811a524994
。我仍然不明白您想要的工作区名称的来源。为什么需要这个?也许有另一种方法可以实现您想要的。@erra工作区名称是由工具生成的,因此它们是使用函数计算的。我认为除了使用构建和工作区文件外,您无法控制加载阶段。也许您可以尝试创建一个计算要加载哪个工作区,加载它,然后将它绑定到一个常量名称。该常量名称是您将在生成文件中引用的名称。可以使用存储库创建要加载其他工作区的工作区_rule@Erran你的意思是我可以通过编程从
的“友好名称”到
的“编程名称”创建一个“别名”(工作区本地)
?然后消费者可以编写
load(“友好的名称”、“foo”)
,Bazel会将其解释为
load(“编程的名称”、“foo”)
不完全正确。简而言之,
repository\u规则
在实例化时会生成一个工作区。在这种情况下,当生成所述工作区时,该规则将生成一个
工作区
文件,其中包含
本地存储库
规则。每个
本地存储库的
名称
友好的\u名称
路径
将是
编程的\u名称\u e811a524994
。我仍然不明白您想要的工作区名称的来源。