设置Solr的最佳方式(Ant vs Maven)?

时间:2012-04-10 21:34:08

标签: java maven ant solr

我有一个目前用ant构建的项目,它通过git提取最新的Solr主干版本,然后通过ant构建。在这一点上,我已经习惯了Maven及其依赖系统,并发现我们过去的蚂蚁做事方式非常混乱且难以维护。话虽如此,基本上我看起来在网上的所有地方,人们都在用Ant构建solr,而我用Maven做的几个教程都是this one,这似乎不起作用。

因此,要清楚,我在这里寻找的是一种在Eclipse中开发项目并能够部署它的简洁方法。我敢肯定以前有人必须这样做,并且必须有一个好的答案。我真的很想听听它。

3 个答案:

答案 0 :(得分:3)

我只是通过将所有依赖项放入Maven,将自己的repo用于Solr 4.0-SNAPSHOT的挂钩版本,将web.xml从它复制到src / main / webapp / WEB-INF /,然后运行通过mvn jetty执行的操作:使用作为参数传递的显式变量运行:

mvn jetty:run -Dsolr.dataDir="./solr-data" -Dsolr.master-host="localhost" -Dsolr.solr.home="./solr-home"

这种方法在官方上是不受支持的,但这意味着我不再需要打扰丑陋的蚂蚁配置,或者在我的项目附加的git repos中保存所有Lucene和Solr,所以我可以从它们构建。它还意味着更改/更新版本只需要在我的pom.xml中进行一行更改,而不是挖掘并切换大量无关的配置。我很高兴,一旦我对Solr的工作方式有了更好的了解,重新配置项目真的不是那么糟糕。

答案 1 :(得分:2)

这个答案可能更多是评论,但评论太小而无法公开。

我对Solr一无所知,但从中立的角度来看,我会说你有两个选择:

  1. Mavenize Solr(看起来像你的文章所建议的那样)。也许您可以使用他们的解决方案发布您遇到的问题的另一个问题。
  2. 使用maven-antrun-plugin调用原始的ant任务。这也可能需要附加构建的jar(或者如果它只包含类/资源,首先将它们jar起来)。您可以决定使用maven-install-plugin在本地安装它们,或者使用maven-build-helper-plugin附加它们。
  3. 在eclipse中,有很多技巧可以访问构建的文件。您可以简单地将项目添加为依赖项。

    这第二个选项应该可行,但我觉得它不是很干净

答案 2 :(得分:2)

如果你愿意,你应该可以使用Maven,我知道一些Solr开发人员会这样做。看看这里:http://wiki.apache.org/solr/HowToContribute#Maven。这不是最受支持的方式,因为我从未尝试过,所以我无法帮助你。

我实际上使用Solr + Ant,基本上是一项任务:ant testant dist等等。我同意这有点过时,但它确实有效。最近,为了从源代码树中删除所有jar,Ivy作为依赖管理工具,对构建进行了大量改进。

如果您对蚂蚁有一些具体问题,请告诉我,也许我可以帮助您更多。