从外部程序包引用本地程序包

时间:2019-01-24 22:25:15

标签: bazel

可以使用什么标签来引用外部软件包的BUILD文件中的本地软件包?

说我有A包裹,这是我的顶级包裹。在程序包A的WORKSPACE文件中,我抓取了外部程序包B,该程序使用build_file参数将BUILD.bazel文件覆盖到该程序包上。

A的cc_library规则实际上并不依赖于B。 A.Tests规则取决于A和B。 B也依赖于A。

在我为B定义的BUILD文件中,如何引用A?没有标签似乎起作用。这可能吗?

2 个答案:

答案 0 :(得分:1)

如果A.Tests依赖于B(和A),并且B也依赖于A,为什么A和B分开?

要回答您的问题,您需要创建第三个工作区C,将A和B都声明为外部工作区,然后A的目标可以引用@B//x:y,而B的目标可以引用@A//z:w

答案 1 :(得分:0)

在B的BUILD文件(由build_file参数指定)中,我可以通过以下标签引用A:<?php $client = $this->google->getClient(); $service = new Google_Service_Classroom($client); $optParams = array( 'courseStates' => 'ACTIVE', 'pageSize' => 20, 'teacherId' => $teacher, ); $results = $service->courses->listCourses($optParams); foreach($results->getCourses() as $r) { $course = (string)$r->getId(); // coursework $work = $service->courses_courseWork->listCoursesCourseWork($course, array()); // ... // announcements $announ = $service->courses_announcements->listCoursesAnnouncements($course, array('announcementStates' => 'PUBLISHED')); // ... } // materials???