我有一个目前使用 ant 构建的项目,该项目通过 git 拉入最新的 Solr 主干版本,然后通过 ant 构建。在这一点上,我已经习惯了Maven及其依赖系统,并且发现我们旧的蚂蚁做事方式非常混乱且难以维护。话虽如此,基本上我在网上看到的任何地方,人们都在用 Ant 构建 solr,而我找到的几个使用 Maven 做事的教程都和这个教程一样,这似乎不起作用。
所以,需要明确的是,我在这里寻找的只是一种在 Eclipse 中开发项目并能够部署它的干净方法。我相信以前一定有人做过这件事,并且必须有一个很好的答案。我真的很想听听。
我只是通过将所有依赖项扔到 Maven 中来让它工作,为 Solr 4.0-SNAPSHOT 的挂钩版本制作我自己的存储库,将 web.xml 从它复制到 src/main/webapp/WEB-INF/,并通过 mvn jetty:run 运行东西,使用作为参数传入的显著变量作为:
mvn jetty:run -Dsolr.dataDir="./solr-data" -Dsolr.master-host="localhost" -Dsolr.solr.home="./solr-home"
这种方法是官方不支持的,但这意味着我不再需要为丑陋的 ant 配置或将所有 Lucene 和 Solr 保存在附加到我的项目的 git 存储库中,因此我可以从它们进行构建。这也意味着更改/更新版本只需要在我的pom中进行一行更改.xml而不是挖掘和切换大量无关的配置。我很高兴,一旦我对Solr应该如何工作有了更好的感觉,重新配置项目真的不是那么糟糕。
这个答案可能更像是一个评论,但一个评论太小了,无法全部暴露。
我对Solr一无所知,但从中立的角度来看,我想说你有两个选择:
- Mavenize Solr(看起来像你的文章所建议的)。也许您可以发布另一个问题,说明使用他们的解决方案会遇到什么问题。
- 使用 maven-antrun-plugin 调用原始 ant 任务。这也可能需要附加构建的 jar(或者如果它只包含类/资源,请先 jar 它们)。您可以决定使用 maven-install-plugin 在本地安装它们,或者使用 maven-build-helper-plugin 附加它们。
在 eclipse 中,有很多技巧可以访问构建的文件。您可以简单地将项目添加为依赖项。
第二个选项应该有效,但我发现它不是很干净
如果你愿意,你应该能够使用Maven,我知道一些Solr开发人员会这样做。看看这里:http://wiki.apache.org/solr/HowToContribute#Maven。不过,这不是最受支持的方式,由于我从未尝试过,因此我无法帮助您。
我实际上使用Solr + Ant,基本上所有事情都有一个任务:ant test
,ant dist
等等。我同意这有点过时,但它有效。最近,构建已经得到了很大的改进,引入了Ivy作为依赖管理工具,以便从源代码树中删除所有jar。
如果您对蚂蚁有一些具体问题,请告诉我,也许我可以为您提供更多帮助。