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