到目前为止,我一直在使用Maven和ant + ivy,但我认为维护它们的所有配置相当困难。
我真正喜欢的是像leiningen这样的东西,它不需要任何xml,你可以管理代码中的依赖项(在leiningen的情况下使用clojure代码)。它还配备了一个方便的cli工具。
我知道leiningen在内部使用maven所以如果你的建议使用maven 内部那么这不是一个问题,所以一个很好的抽象简化了事情,不需要与maven / ant /的交互常春藤对我来说同样有益。
答案 0 :(得分:5)
我会使用纯maven或gradle,因为它更容易创建构建脚本,但会远离ant。
Ivy是一个未充分利用的依赖管理解决方案,我个人只有粗略的经验(如构建工件但不管理它们),我从未维护过常春藤构建,但看起来非常简单。需要考虑的一件事是插件的可用性和易于构建的工件(与流行程度成正比),而maven是明显的领导者。
所以,我的建议是纯粹的maven或gradle。
编辑:近年来,一些回购所有者维持常春藤和maven构建以增加代码曝光度已成为现代。如果你这样做,gradle会更简单,因为它一旦你要编写你的脚本,它就会提供一个很好的抽象,而不是那些精美的maven / ivy东西。
答案 1 :(得分:4)
我建议gradle。 Gradle既是依赖管理又是构建系统。你用groovy代码编写你的构建脚本,没有xml。 gradle可以使用现有的常春藤或maven回购。它的配置往往比maven更简洁,而且非常灵活(因为你可以在需要的时候在你的构建脚本中编写代码)。
上有大量文档答案 2 :(得分:3)
曾经有一个名为Polyglot Maven的项目,它是用代码而不是xml配置的maven。在此处提供了有关其当前状态的一些详细信息:What happened to Maven Polyglot?
我还发现Buildr(用于构建Java项目,使用Ruby编写的配置)。
我认为值得澄清为什么你发现maven的配置难以维护。当然,XML可能非常糟糕,但IDE中有很多可用的工具。如果它的实际项目结构和/或构建生命周期很难(并且可能,特别是对于多模块构建)那么基于maven的解决方案可能会赢得'好多了。