我正在开发一个包含特定版本的 Lucene 的 Eclipse 插件。我需要生成一个搜索索引并部署它,以便另一个使用相同版本的 Lucene 的应用程序可以读取它。
我最近将 eclipse 升级到 3.4,现在第二个应用程序无法读取搜索索引。我看到 eclipse 3.4 包含更新版本的 Lucene,我假设在生成索引时使用了这个版本。
如何确定在生成索引时使用的是哪个版本的 Lucene?我的插件类路径从我的 Lucene 捆绑版本开始,所以我希望我的版本应该优先。
TIA
我正在开发一个包含特定版本的 Lucene 的 Eclipse 插件。我需要生成一个搜索索引并部署它,以便另一个使用相同版本的 Lucene 的应用程序可以读取它。
我最近将 eclipse 升级到 3.4,现在第二个应用程序无法读取搜索索引。我看到 eclipse 3.4 包含更新版本的 Lucene,我假设在生成索引时使用了这个版本。
如何确定在生成索引时使用的是哪个版本的 Lucene?我的插件类路径从我的 Lucene 捆绑版本开始,所以我希望我的版本应该优先。
TIA
您可能想试试ClassPath Checker和ClassPath Helper 。
您可以通过这种方式准确确定您的开发环境中使用了哪些 jar,以便将这些 jar 与部署环境中存在的 jar 进行比较,其中 Luce 生成索引。
ClasPath Checker jar 冲突:
Classpath Helper Blocked (Obscured) Classes 视图:
似乎现在可以工作了。对于那些有兴趣的人,这是我必须做的:
希望这对某人有用。
由于您正在开发一个 Eclipse 插件,您应该研究一下 OSGi。Eclipse 插件是 OSGi 包的实例,OSGi 有一个强大的模型来处理包之间的依赖关系和版本控制。
我不知道你的具体代码,但如果打算在我的插件中使用 Lucene,我会使用 OSGi 的“Import-Package”或“Require-Bundle”功能来表达依赖关系;我不会在我的插件中包含 Lucene JAR。如果每个插件都包含自己的 Lucene JAR,那么您会浪费空间,但更重要的是,最终会得到不兼容的版本(就像您拥有的那样)。
OSGI 的网站不是开始您的 OSGi 之旅的最佳地点(它对 OSGi 规范和 Peter Kriens 的博客很有帮助)。最好从 Neil Bartlett 的在线书籍之类的东西开始。