combineaccessrules在Eclipse类路径中的含义是什么?

ska*_*man 34 java eclipse classpath

这已经困扰了我多年了,我想你们其中一个好人会知道 - 在Eclipse的.classpath文件中,classpattrytry元素的combineaccessrules属性实际上用于什么?

我可以在Java Build Path配置对话框中看到它可以被maniuplated,但我想不出一个很好的用例.如果我搞砸了设置,或手动修改.classpath文件,它似乎没有任何影响.

我希望其他人能够很好地利用它,我可以窃取他们的想法.基本上,这是一个我想要划伤的痒.

Csa*_*a_H 27

通过正确使用访问规则,您可以防止使用"内部"和/或"非api"类和方法.当您将类或包添加为ForbiddenDiscouraged时,编译器在您使用指定包中的类或类时会显示错误或警告.要更长时间地介绍访问规则,您应该阅读这篇简短的文章.

对于使用组合访问规则,请考虑以下情况:

  • 你有2个项目,A和B.
  • 在项目A的类路径上,有一个导出的jar文件.该jar包含一些"稳定的api","不稳定的api"和"non-api"公共类.
  • 项目B取决于项目A.

您不允许在项目A中使用"非api"类,因此您在这些类/包上设置了一些禁止访问规则.

在项目B中,您也不允许使用"non-api",但在使用"unstable api"时,您确实希望收到警告.在这种情况下,在项目B中,如果使用导出的项目条目的访问规则检查" 组合规则",则只需设置其他" 气馁"访问规则.