代码之家  ›  专栏  ›  技术社区  ›  paul

Eclipse:如何确保插件中的jar优先于其他版本?

  •  3
  • paul  · 技术社区  · 17 年前

    我正在开发一个包含Lucene特定版本的eclipse插件。我需要生成一个搜索索引并部署它,以便它可以被另一个使用相同版本Lucene的应用程序读取。

    我最近将eclipse升级到3.4,第二个应用程序现在无法读取搜索索引。我看到Eclipse3.4包含一个更新版本的Lucene,我假设在生成索引时使用这个版本。

    如何准确确定生成索引时使用的是Lucene的哪个版本?我的插件类路径从我的Lucene捆绑版本开始,所以我希望我的版本应该得到优先权。

    短暂性脑缺血发作

    3 回复  |  直到 17 年前
        1
  •  3
  •   VonC    13 年前

    你可能想给 ClassPath Checker ClassPath Helper 试试看。

    通过这种方式,您可以准确地确定在您的开发环境中使用了哪些jar,以便将它们与部署环境中的jar进行比较,Luce在部署环境中生成索引。

    CLASSATH检查器jar冲突:
    classpath checker

    Classpath辅助程序阻止(模糊)类视图:
    classpath helper

        2
  •  0
  •   paul    17 年前

    现在好像有用了。对于那些感兴趣的人,我必须这样做:

    • 从我的插件中删除了Lucene 1.4.3 jar
    • 将旧Lucene插件从旧版本的eclipse复制到3.4版。
    • 选择版本1.4.xx并更改属性以将最大版本设置为1.5
    • 添加了其他插件依赖项
    • 重新计算运行配置。Lucene 1.4.3插件不是自动添加的,所以是手动添加的。

    希望这对某人有用。

        3
  •  0
  •   Steven Dick Steven Dick    17 年前

    既然您正在开发一个Eclipse插件,那么您应该研究一下OSGi。Eclipse插件是OSGi捆绑包的实例,OSGi具有处理捆绑包之间的依赖关系和版本控制的强大模型。

    我不知道你的具体代码,但如果我计划在我的插件中使用Lucene,我会使用OSGi的“导入包”或“需要捆绑包”功能来表达依赖性;我不会在我的插件中包含Lucene JAR。如果每个插件都包含自己的Lucene JAR,那么您将浪费空间,但更重要的是,最终会得到不兼容的版本(就像您所拥有的)。

    OSGI's website 不是开始OSGi之旅的最佳地点(这对OSGi规范和Peter Kriens的博客有好处)。最好从Neil Bartlett's online开始 book

    推荐文章