我在考虑摆脱Maven。对于简单的应用程序来说,这是没有问题的,但是我遇到了一些我无法解决的问题,似乎没有其他人能够解决这些问题,甚至连Maven邮件列表也没有解决方案。
哪些是为Java提供的现代构建工具,它们提供了Maven所提供的功能,同时也具备了处理开发现代web应用程序的挑战的能力?例如,如果我想使用Javascript小型化工具,比如YUI压缩器,它可以轻松轻松地让我在创建War文件之前压缩/聚合我的css和javascript。
jscharts.js这样的javascript文件,您需要将它们从细化过程中排除出来,因为否则它们会破坏实际的源代码。在Maven中无法处理这个用例,即使解决方案很简单。拥有使用实时javascript与压缩/聚合javascript的能力也将是一大福音。
pom.xml中维护一个单独的列表,以便聚合它们。
这两个javascript文件列表基本上是相同的,对于开发人员来说,确保它们包含相同的文件和顺序是一个额外的负担:( Maven在2011年并没有帮助解决这样一个与web相关的常见问题。不过,Rails 3.1的用户可以免费获得这个。我们可以做得更好。我仍然需要有过滤器的能力,就像在maven中一样,可以处理不同的生产环境。例如,我经常使用属性文件来更改applicationContext.xml For Spring或servlet上下文中的值。
我还需要向类路径添加资源的能力。我有大量的文本文件,为我提供了字典、辞典等的基本功能。我需要把这些放在我的类路径中。
如果构建工具也使用Maven存储库,那就太好了。
任何其他好处,如更简单和编写更少的配置代码将是一个好处,但我上面列出的特性是最重要的。
谢谢。
发布于 2011-12-05 02:55:08
你应该能在格拉德尔完成所有这些。从本质上说,它是Groovy中的一组库和模块,为构建提供了很大的能力。如果需要对其进行扩展,则使用Groovy编写扩展。挺不错的。
发布于 2011-12-05 02:57:40
如果您喜欢学习Scala,那么我强烈推荐SBT。我们使用它来构建我们所有的Java代码,并且对它非常满意。它可以做一些整洁的事情,比如并行构建,而不像ANT/Maven,它的增量编译实际上是接缝工作的。此外,它还包括一个很好的REPL,它允许您直接与构建和代码交互。
SBT易于扩展,因为它的构建文件是用代码而不是XML编写的。因此,插件存在于你的心脏所能想要的一切东西上,例如:
至于项目依赖关系,可以是托管(自动从Maven/Ivy下载)或非托管(即资源(jar,文件,.)你自己添加)--它们也可以混合和匹配。
SBT使用标准的Maven目录布局(尽管这很容易更改),对IDE的(fx )有很大的支持。月食和想法),如果您需要的话,它还可以为您生成一个pom文件。
有一个非常好的指南可以让您快速开始使用SBT 这里。
https://stackoverflow.com/questions/8380515
复制相似问题