Hibernate使用Antlr(显然是3.5.2工作),我正在使用Hibernate(因此在OSGi环境中也使用Antlr)。我已经将antlr-complete-3.5.2-SNAPSHOT.jar包装为OSGi包,但是我导出了包中的所有包。问题很简单。我需要知道这个包中的哪些Java包是私有的,哪些是公共Antlr API的一部分。现在,我正在出口一切 下:
antlr.*;
org.antlr.*,
org.stringtemplate.v4.*
这可能是出口太多了。谢谢你的帮助。
答案 0 :(得分:0)
通常,在OSGifying非OSGi JAR时,导出所有包是最好的。
假设您可以在不破坏Hibernate的情况下限制ANTLR导出,这可能会破坏其他正好使用其中一个未导出的软件包的ANTLR客户端。
Vanilla Java根本不支持私有包的概念。