代码之家  ›  专栏  ›  技术社区  ›  petros-eskinder

Skylark-一个规则可以从其标签访问另一个规则的属性吗?

  •  1
  • petros-eskinder  · 技术社区  · 8 年前

    这个问题是背负的 this github issue 但是,我在另一个方面遇到了这个问题。

    在Bazel中,有两个存储库规则,maven\u jar和maven\u server。

    maven_jar(name, artifact, repository, server, sha1)
    
    maven_server(name, repository, settings)
    

    maven\u jar规则的服务器属性是指向某个maven\u服务器目标的标签。

    我想实现的目标

    def _impl(rtx):
         settings_attr = rtx.attr.server.getSettings()
    
         # alternatively
         settings_attr = rtx.attr.server.getAttributes().settings
    

    支持这种行为吗?如果没有,我有什么办法可以近似吗?

    服务器属性是一个标签,所以我不确定是否可以使用其提供者/方面来获得这些值。

    1 回复  |  直到 8 年前
        1
  •  2
  •   kris    8 年前

    存储库规则是宏,因此它们不像“普通”规则那样具有提供程序。因此,如果指定标签属性,它基本上必须是源文件。

    作为设置。xml不应该是特定于项目的,我认为它对 maven_jar Maven docs :

    设置有两个位置。xml文件可能有效:

    • 用户安装:${user.home}/.m2/settings.xml

    以前的设置。xml也称为 设置。如果两个文件都存在,则它们的内容将被合并,并使用 用户特定设置。xml占主导地位。