Java轻量级构建工具

4

我正在寻找一个轻量级的Java构建工具。尽可能轻。即使牺牲了一些功能也可以。有什么推荐的吗?


2
@Oleg - 如果你解释一下你所说的“轻量级”,也许你会得到更好的答案。 - Stephen C
1
我所谓的“轻量级”,指的是非常简单易用、易懂、设计简单,并且仅包含构建小型项目所需的最少功能集。只需要复制/粘贴一些示例,然后就可以放心使用了。 - user278012
没有这样的工具存在。你为什么需要它? - Thorbjørn Ravn Andersen
8个回答

2

尽量轻巧?那一定是在批处理文件或Shell脚本中运行Java编译器。

为什么这么说呢?


1

只有两个选择:Ant 或 Maven。

Ant 本质上是一个脚本工具,你可以用它做任何事情,但你必须自己编写所有内容。

Maven 带有许多预定义的项目类型。它会向您指示一个目录结构(有些人不喜欢),但也会处理依赖关系(Ant 可以使用 Ivy 进行排序)。

个人而言,我更喜欢Maven。几行 XML 就可以让您运行单元测试、停止和启动 Web 容器(例如 Jetty 或 Tomcat)等任务。


有更多的选择,例如Buildr(http://stackoverflow.com/questions/1015525/why-use-buildr-instead-of-ant-or-maven),虽然不像Ant或Maven那样流行。 - Jonik

1

我再次推荐Maven2 - 它通过插件非常丰富,但也可以非常“轻量级”(具体取决于什么意思):

  • 它不需要硬安装(只需解压目录+将其路径添加到环境变量中(取决于操作系统))
  • 它不需要配置 - 只需复制粘贴一个简单的POM文件,您的构建就准备好了。您只需遵循maven的目录结构约定
  • 它有每个IDE的插件,因此使用GUI使其更加容易。

当然,另一种选择是ant,但我发现它不够“轻量级”。而且认为它不够轻量级,因为ant脚本变得丑陋和不可预测,并且变得难以管理,而maven脚本保持简单,因为工具提供了丰富的功能。


有趣。我一直以为Ant比Maven“轻”,也许我错了.. - user278012
@Oleg,很多人会声称Ant 更加“轻量级”……此外,请查看https://dev59.com/yHRA5IYBdhLWcg3wsgFP以了解Maven的优缺点。 - Jonik
2
Maven 的轻便之处在于您不需要包含琐碎的细节。另一方面,它在某些意义上是“沉重”的,因为通常您需要使用 Maven 解决比 Ant 更多的问题,并且您需要按照“Maven方式”重新构建您的项目。 - Stephen C

1
如先前所述,您真正的选择在于Maven或Ant。与其他观点相呼应,我发现使用Ant需要更多的配置,因此我更喜欢Maven。话虽如此,很多人倾向于批评Maven,因为尽管你需要较少的配置,但它下载了很多依赖(以及依赖/依赖),所以这完全取决于您所指的“轻量级” - 是指配置轻还是依赖关系JAR下载/安装大小轻?
如果您想要在配置和下载方面都轻便的东西,则最好使用shell脚本,但只要有时间,它就可以拥有丰富的功能!

不必使用shell脚本,您可以在jruby下使用'Rake'。即将推出的JRuby 1.5将集成Rake和Ant支持,这意味着您可以从Ant调用Rake任务,反之亦然。因此,您可以获得Rake的简单性和强大功能,但可以利用现有的Ant构建脚本。请查看此博客:http://www.engineyard.com/blog/2010/rake-and-ant-together-a-pick-it-n-stick-it-approach/ - DJ.
@DJ 我必须承认我是一个 JRuby 新手,虽然我对 JRuby 很好奇...所以 Rake(和其他工具)让它看起来越来越有趣。可以假设我们可以使用任何输出的众多 ant 工具? - James B

1

这真的取决于你对“轻量级”的定义。你想要一个需要很少工作才能使用的工具(代码轻量级)吗?如果是这样,MavenGradle可能是一个不错的选择。Maven已经存在一段时间了。如果你正在做遵循他们的惯例的事情,那么你在pom.xml文件中需要编写的内容非常少。如果你开始偏离常规,那么让它做你需要的事情就会变得困难(使事情变得不太轻松)。Gradle也是一个选项。它没有像Maven那样长久存在,但允许你更容易地偏离传统。

如果你正在寻找的是工具本身轻量级的东西,Apache ant可能是一个更好的选择。它没有像Maven那样内置惯例。如果你有一个相当简单的非标准构建,可能可以创建一个非常轻量级的ant脚本来完成你的构建。


0

Maven最简单的方法是遵循其目录结构。如果您使用的是Linux或Unix系统,我建议使用shell脚本。或者您可以考虑使用Eclipse或NetBeans等IDE,它们会为您完成这项工作,并且依赖项非常容易配置。


0
你试过使用BlueJ(http://www.bluej.org/)吗?我几年前用它来教学生。它很简单,你可以直接复制/粘贴代码并运行。它是为了教学生而创建的,因此非常简单,适合Java初学者。请注意,它是一个完整的IDE,不像Maven或Ant那样是一个命令行工具。

0

如果你想要遵循标准,Maven 是最好的选择。 如果你想要灵活性,可以考虑使用 Groovy AntBuilder。它具有简洁的语法和完整的 Ant 和 Groovy 脚本编写能力。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接