在bazel方面输出文件中积累数据的推荐策略
我正在编写一个构建后工具,它需要目标jar文件列表的位置。 对于这些位置,我有一个在目标列表上运行的方面(分别针对每个目标使用--aspects),并获取每个目标的jar文件路径 我已设法在每个目标的输出文件夹中的自定义输出文件(例如jar.txt)中获取每个jar文件路径 但这意味着我需要分别检查每个jar.txt文件以获得位置 有没有办法将jar文件路径累积到单个文件中?在bazel方面输出文件中积累数据的推荐策略,bazel,bazel-aspect,Bazel,Bazel Aspect,我正在编写一个构建后工具,它需要目标jar文件列表的位置。 对于这些位置,我有一个在目标列表上运行的方面(分别针对每个目标使用--aspects),并获取每个目标的jar文件路径 我已设法在每个目标的输出文件夹中的自定义输出文件(例如jar.txt)中获取每个jar文件路径 但这意味着我需要分别检查每个jar.txt文件以获得位置 有没有办法将jar文件路径累积到单个文件中? 比如: 尝试使用方面中的append命令写入同一输出文件夹。我不确定是否可以共享输出文件夹 创建一个依赖于所有相关目标的
比如:
在bazel方面输出文件中积累数据的推荐策略是什么 如果我理解正确,那么您希望将来自每个方面节点的信息传递到单个结果中。为此,请在方面规则实现中构建可传递集,并通过“提供程序”机制传递它[^1]。我写了一些关于bazel方面的例子,也许你会发现它很有用[^2]
Bazel在Skylark中不提供在目标图中彼此不相关的目标之间积累信息的工具(例如,在命令行中彼此相邻的目标) 一种可能是编写一个云雀规则,该规则取决于您通常在命令行中提到的所有目标,并构建了该规则;该规则将能够将每个Java目标的类路径整理成单个文件 另一种可能是告诉Bazel使用
--experimental_build_event{json,text,binary}文件将构建事件(包括指定构建模式扩展到的所有目标的所有输出)写入文件。(即将删除“实验性”选项。)。这些文件包含此消息的实例:
Paul,方面访问的目标不是依赖关系树的一部分。这就是为什么我建议创建一个依赖于所有真实目标的合成目标,然后按照您的建议将数据传播到它。我的问题是,创建合成目标是否不是一种气味…,例如,我想访问m0中的所有目标,并找到它们的所有罐子位置