通过插件导出包

Exporting of packages by a plugin

我有一个第三方 eclipse 插件,它导出了几个包,这些包在我的其他插件的编译过程中不应该出现。

包对下游插件无条件可见(按照约定here分类为Accessible)

  1. 一种选择是手动编辑插件并禁止导出包。编辑插件对我来说不是一个选项(许可证问题)。

  2. 另一种选择是使用 -Dosgi.resolverMode=strict VM 参数启动。我也不能使用此选项,因为这会影响我环境中的其他插件。

  3. 上面我的理解可能有误。任何帮助将不胜感激或欢迎任何其他选择。

例如:

我有一个名为 net.jeeeyul.eclipse.themes_2.2.0.I20140916-113709 的插件,它导出以下包

 Export-Package: com.google.common.annotations,com.google.common.base,c
 om.google.common.base.internal,com.google.common.cache,com.google.com
 mon.collect,com.google.common.escape,com.google.common.eventbus,com.g
 oogle.common.hash,com.google.common.html,com.google.common.io,com.goo
 gle.common.math,com.google.common.net,com.google.common.primitives,co
 m.google.common.reflect,com.google.common.util.concurrent,com.google.
 common.xml,net.jeeeyul.eclipse.themes,net.jeeeyul.eclipse.themes.css,
 net.jeeeyul.eclipse.themes.rendering,net.jeeeyul.eclipse.themes.util,
 org.eclipse.xtend.lib,org.eclipse.xtend.lib.annotations,org.eclipse.x
 tend2.lib,org.eclipse.xtext.xbase.lib,org.eclipse.xtext.xbase.lib.int
 ernal,org.eclipse.xtext.xbase.lib.util

这不应该发生。 None 这些插件在编译期间应该对其他插件可见。

在每个下游插件项目中,您可以通过 Java 构建路径 添加 访问规则:转到属性节点 Java Build Path > Libraries > Plug-in Dependencies > Access rules.尝试此方法时请参考 Combine Access Rules.