Maven更换?

时间:2008-12-22 02:24:28

标签: java maven-2 build continuous-integration

你会建议什么作为Maven Java构建工具集的替代品?只是简单的Ant脚本? SCons的?

7 个答案:

答案 0 :(得分:8)

这取决于你使用的是什么。 Maven 1? Maven 2?我发现Maven 2在与Ant任务和一些家庭烘焙的Java插件结合使用时,文档很好,而且非常强大。

有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

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

答案 1 :(得分:5)

虽然我喜欢Maven的想法,但我总是发现自己除了最简单的配置之外还要做任何事情。它的架构是基于插件的,插件的质量差异很大。文档最多是粗略的;有一半时间我无法弄清楚我正在阅读的文档是否适用于Maven 1或2.你经常使用maven-ant-plugin来做一些基本的事情吗?

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

我最终做的是编写一个简单的Ant目标的“库”,例如“resolve”,“compile”,“install”等,期望事物在标准的Maven位置(例如{{ 1}})然后src/main/java目标进入我的各个项目。通过这种方式,您可以获得两个世界中最好的 - Maven风格的配置,以及Ant的所有功能。

答案 2 :(得分:4)

我喜欢用Ivy使用Ant。 Ivy使用Maven存储库来获取库依赖项,而不必强迫您更改整个构建系统以适应Maven。

答案 3 :(得分:3)

我一直在使用buildr来完成我的一些项目。非常简洁易读的构建脚本(没有xml),它使用maven repos(使用简单的工作,maven 1和maven 2)。

我正在寻找一些后期maven1来为一些项目工作,m2并不是那么有吸引力。由于需要重做所有构建系统,Maven已经让所有m1用户保持高度干燥(据我所知,我的一些用户无法以m2表示)。

答案 4 :(得分:1)

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

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

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