5

作为 Maven Java 构建工具集的替代品,您有什么建议?只是简单的 Ant 脚本?缺点?

4

7 回答 7

8

无论如何,这取决于您使用什么。马文一号?马文2?当与 Ant 任务和一些自制的 Java 插件结合使用时,我发现 Maven 2 有很好的文档记录,并且非常强大。

有一些 Ant 任务可以使用来自 Ant 的 Maven 功能:http ://maven.apache.org/ant-tasks/index.html 。因此,您实际上并不需要编写自己的“库”。

您可以从 Maven 调用 Ant:http ://maven.apache.org/plugins/maven-antrun-plugin/ 。

您还可以使用 Groovy 编写脚本,例如: http: //groovy.codehaus.org/GMaven+-+Executing+Groovy+Code

或者只是为您需要的自定义位编写 Java 代码:http ://maven.apache.org/guides/plugin/guide-java-plugin-development.html 。

当你可以做到时,没有理由不混合搭配;)

于 2009-01-06T07:43:21.550 回答
5

虽然我喜欢 Maven 的想法,但我总是发现自己在为除了最简单的配置之外的任何东西而奋斗。它的架构是基于插件的,插件的质量差异很大。文档充其量是粗略的;有一半的时间我不知道我正在阅读的文档是针对 Maven 1 还是 2。您多久不得不求助于使用maven-ant-plugin来做一些基本的事情?

我已经使用Apache Ivy大约一年了,我对它非常满意。虽然有一点学习曲线。但是有一个活跃的邮件列表,作者反应非常好。

我最终做的是编写一个包含一些简单 Ant 目标的“库”,例如“resolve”、“compile”、“install”等,这些目标希望事物位于标准 Maven 位置(例如src/main/java),然后<import>是目标进入我的各种项目。通过这种方式,您可以获得两全其美的优势——Maven 风格的配置,以及 Ant 的所有功能。

于 2008-12-22T03:45:53.173 回答
4

我喜欢将 Ant 与Ivy一起使用。Ivy 使用 Maven 存储库来获取库依赖项,而无需强制您更改整个构建系统以适应 Maven。

于 2008-12-22T02:43:16.123 回答
3

我一直在为我的一些项目使用buildr。非常简洁易读的构建脚本(无 xml),它使用 maven repos(只需付出微不足道的努力,maven 1 和 maven 2)。

我一直在为一些项目寻找一些 post-maven1 的东西,而 m2 并不是那么吸引人。Maven 已经让所有的 m1 用户都忙得不可开交,他们需要重做他们所有的构建系统(据我所知,我的一些用户无法用 m2 表示)。

于 2008-12-22T03:41:40.497 回答
1

我真的很喜欢使用 ant4eclipse——你可以像往常一样在 eclipse 中设置你的项目依赖,你可以编写一个单一的 ant 脚本,以正确的顺序构建所有项目。

对于第三方库,您可以设置一个包含(并导出)所有 jar 的单个 Eclipse 项目[我不推荐这样做],或者为每个第三方库设置一个单独的项目,导出 jar。[我推荐后者 b/c 你可以跟踪项目->第三方部门并在需要时升级部件。]

于 2008-12-31T23:00:50.883 回答
0

如果我期望我的构建中有复杂的构建目标,我会选择 buildr。好处是,您根本不依赖任何特定的库。你拥有 Ruby 的所有 API 来做任何你想做的事;与 Ivy 不同,在这种情况下,您仍然与 ANT 绑定。如果您想将库依赖引入到已经建立的基于 ANT 的构建机制中,该构建机制会执行您想要执行的所有操作,那么迁移到 Ivy 的努力是值得的。

于 2008-12-22T17:14:49.637 回答
0

Maven 至少有三个不同的部分:存储库、独立于实现的生命周期和默认项目的约定。使用 Ivy 仅提供存储库。

我没有使用过它,但我认为easyant旨在更完整地替代Maven。它使用 Ivy 作为存储库,但随后添加了约定和标准模块。

于 2008-12-23T04:56:03.967 回答