是否有一个简单的Java项目构建/依赖关系管理工具?

是否有一个简单的Java项目构建/依赖关系管理工具?,java,maven,ant,ivy,leiningen,Java,Maven,Ant,Ivy,Leiningen,到目前为止,我一直在使用Maven和ant+ivy,但我认为很难维护它们的所有配置 我真正想要的是像leiningen这样的东西,它不需要任何xml,并且您可以在代码中管理依赖关系(在leiningen的情况下是clojure代码)。它还附带了一个方便的cli工具 我知道leiningen在内部使用maven,因此,如果您的建议在内部使用maven也不是问题,因此一个好的抽象,它简化了事情,不需要与maven/ant/ivy进行交互,对我来说也同样好。我会使用纯maven或gradle,因为创建

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

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


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

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

Ivy是一个未被充分利用的依赖关系管理解决方案,我个人只有粗略的经验(比如构建工件,但没有管理它们),我从未维护过Ivy构建,但看起来非常简单。需要考虑的是插件的可用性和易于构建的工件(这与流行度成正比),Maven是明显的领导者。 所以,我的推荐是纯maven或gradle


编辑:近年来,对于一些回购协议所有者来说,同时维护常春藤和maven构建以增加代码曝光率已经变得很现代了。如果你这样做,gradle会更简单,因为一旦你要写脚本,它在maven/ivy的基础上提供了一个很好的抽象。

以前有一个名为Polyglot maven的项目,maven是用代码而不是xml配置的。此处提供了有关其当前状态的一些详细信息:

我还发现(用于构建Java项目,配置用Ruby编写)


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

我建议gradle。Gradle是一个依赖项管理和构建系统。您可以使用groovy代码编写构建脚本,而不使用xml。gradle可以与现有的常春藤或maven回购协议合作。它的配置往往比maven的详细得多,而且非常灵活(因为您可以在需要时在构建脚本中编写代码)


上有大量的文档,我不想像我在问题中所说的那样使用maven。你还说,如果我们的建议包括maven,这不是问题:)我提供了一个leiningen的示例,它不需要与maven交互。我编辑了我的问题。格拉德尔有什么好处?我只听说过一两次。gradle非常容易编写脚本,有一些主要的支持,并且非常有名/有文档记录/有示例。例如,您可以查看使用gradle构建的astyanax。当然,使用gradle,您还可以将您的工件作为maven或ivy发布,如果您检查它们的gradle脚本,您会发现这一点。当您正在寻找Java解决方案时,我没有将其作为答案发布:
sbt
将Scala用作DSL,并且可以很好地编译Scala/Java混合项目。它在内部使用常春藤。您可以在DSL中对聚合项目和依赖项进行建模。是吗?是的,它是scala-sbt。orgANT是Java构建工具之王,非常可靠,但以他的方式设置。仍然能够学习新的技巧(常春藤),但实际上只是让王国继续前进。马文是王储,有很多新想法,最后开始说服民众他会成为一个好国王。格拉德尔是年轻的王子,勤奋,聪明,向他的前任学习。也许有一天他会毒死他的兄弟,说服国王退休:——)