2017-06-28 50 views
0

我们有很多指定访问规则的Eclipse项目,即它们列出那些类的目的是API的软件包,并阻止/禁止访问所有其他类。Eclipse:如何针对特定项目沉默API访问警告?

这是非常好的和有意义的,除了单元测试。我们的单元测试访问许多内部的类和方法,以验证他们的预期行为,不幸的是会产生几万(真的!)警告。因此,再也没有人再检查警告了,因为找到与正在进行的班级有关的修改和修改实际上是不可能发现的。

我觉得非常令人失望和沮丧,因为许多警告是最有效和最有帮助的。

是否有办法禁用某些项目的访问警告(例如,所有名称以* .test结尾的项目)。或者是否可以在某些项目中产生沉默/压制这些警告?

回答

0

有两种选择:

  1. 给特定.test插件明确许可才能看到内部包。在插件清单编辑器,转到运行标签,内包装添加到导出包然后配置包可见所有插件隐藏期待您测试插件。引擎盖下,这与x-friends指令生成Export-PackageExport-Package: org.example;x-friends:="org.example.tests"

  2. 打开.test项目属性使项目特定设置插件开发>插件清单编译器 。在下使用参考文献您应该找到可以根据自己的喜好调整警告的选项。

+0

感谢您的提示加描述!听起来像解决我的问题。我会测试一下,然后报告它是如何工作的。再次感谢! – mmo

+0

出色地工作!同时我也发现,可以将一个bundle定义为另一个bundle的“Fragment”(并且隐式地也可以访问它的所有内部包)。 – mmo

+0

是的,把你的'eclipse-test-plugin'项目变成碎片是一种很好的做法,因为你不需要为了测试的目的而使用'Export-Package'(毕竟x-friends只是一个提示) 。此外,片段还具有额外的好处,即它们可以使用所有主机包的导入,因此它们的清单可以缩短很多(通常它们只包含JUnit的导入)。 –