3

到目前为止,我一直在使用 Maven 和 ant+ivy,但我认为维护它们的所有配置相当困难。

我真正想要的是像 leiningen 这样不需要任何 xml 的东西,您可以在代码中管理依赖项(在 leiningen 的情况下在 clojure 代码中)。它还带有一个方便的 cli 工具。

我知道 leiningen 在内部使用 maven,所以如果您的建议在内部也使用 maven 也不是问题,所以一个简化事情并且不需要与 maven/ant/ivy 交互的良好抽象对我来说同样好。

4

3 回答 3

5

我会使用纯 maven 或 gradle,因为它更容易创建构建脚本,但会避开 ant。

Ivy 是一个未被充分利用的依赖管理解决方案,我个人只有粗略的经验(如构建工件但不管理它们),我从未维护过 ivy 构建,但看起来很简单。需要考虑的一件事是插件的可用性和易于构建的工件(与受欢迎程度成正比),而 maven 是明显的领导者。

所以,我的建议是纯 maven 或 gradle。

编辑:近年来,一些 repo 所有者维护 ivy 和 maven 构建以增加其代码的曝光率已经变得很现代。如果你要这样做,gradle 会更简单,因为一旦你要编写脚本,它就在本质的 maven/ivy 东西之上提供了一个很好的抽象。

于 2013-06-20T11:40:07.993 回答
4

我会建议gradle。Gradle 既是依赖管理又是构建系统。你用 groovy 代码编写构建脚本,没有 xml。gradle 可以与现有的 ivy 或 maven repos 一起使用。它的配置往往比 maven 的配置要简单得多,而且非常灵活(因为您可以在需要时在构建脚本中编写代码)。

http://www.gradle.org/documentation上有很多文档

于 2013-06-20T12:54:29.497 回答
3

曾经有一个名为 Polyglot Maven 的项目,它是用代码而不是 xml 配置的 maven。此处提供了有关其当前状态的一些详细信息:Maven Polyglot 发生了什么?

我还找到了Buildr(用于构建 Java 项目,配置用 Ruby 编写)。

我认为值得澄清为什么你会发现 maven 的配置难以维护。当然,XML 可能非常讨厌,但在 IDE 等中有很多可用的工具。如果它的实际项目结构和/或构建生命周期很困难(而且可能,尤其是多模块构建),那么基于 maven 的解决方案可能会赢不会好很多。

于 2013-06-20T12:21:25.830 回答