约定优于配置

Convention over configuration

我正在阅读“Building and testing with Gradle”一书,其中略微谈到了 Ant 和Apache Ivy 几乎没有约定。

有人可以举例说明与 Gradle 相比,Ant 或 Ivy 如何不提供约定优于配置?

谢谢。

例如,使用 Maven 或 Gradle,如果您将源文件存储在 src/main/java 中,将测试存储在 src/test/java 中,然后使用非常小的构建来构建它脚本,它只知道编译所有内容,运行 单元测试,并生成编译后的 jar 类(来自 src/main/java)。

使用 Ant,您必须明确告诉它所有源代码的位置、正在执行的任务以及如何打包所有内容。

重点是,Maven 和 Gradle 假定了合理的约定和默认值,并且直接执行,无需您指定。如果您使用的是 Ant,可能有关于您应该如何设置构建脚本的合理约定,但您仍然必须完成这项工作。