3

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

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

4

3 回答 3

3

我刚刚通过将所有依赖项放入 Maven 中,为 Solr 4.0-SNAPSHOT 的挂钩版本创建自己的 repo,将 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 repos 中,所以我可以从它们构建。这也意味着更改/更新版本只需要在我的 pom.xml 中进行一行更改,而不是挖掘和切换一大堆无关的配置。我很高兴,一旦我对 Solr 应该如何工作有了更好的感觉,重新配置项目真的没那么糟糕。

于 2012-04-12T15:45:58.980 回答
2

这个答案可能更多是评论,但评论太小而无法全部暴露。

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

  1. Mavenize Solr(看起来像您的文章所建议的)。也许您可以就使用他们的解决方案遇到的问题发布另一个问题。
  2. 使用 maven-antrun-plugin 调用原始 ant 任务。这也可能需要附加构建的 jars(或者如果它只包含类/资源,请先将它们 jar)。您可以决定使用 maven-install-plugin 在本地安装它们,或者使用 maven-build-helper-plugin 附加它们。

在 Eclipse 中,有很多技巧可以访问构建的文件。您可以简单地将项目添加为依赖项。

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

于 2012-04-10T22:01:29.217 回答
2

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

我实际上与 Solr + Ant 一起工作,基本上每件事都有一个任务:ant testant dist等等。我同意这有点过时,但它有效。最近,构建有了很大改进,引入了 Ivy 作为依赖管理工具,以便从源代码树中删除所有 jar。

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

于 2012-04-11T07:30:01.660 回答