system. From files and configuration it assembles build artifacts. S Gradle is flexible. It is not bound to any specific process or technology. S Gradle uses a Groovy based DSL to write configuration. This makes it easy to read and write Gradle scripts.
expect, allow. S Don‘t re-invent, re-use. S Don‘t inherit, inject. S Scale to the complexity of a problem. – „Make the impossible possible, the possible easy, and the easy elegant.“
imperative. S Maven is verbose. Gradle is concise. S Maven assumes Maven. Gradle doesn‘t. S Maven scales poorly to simple problems. Gradle scales with the complexity of a problem.
ecosystem. Gradle still needs to catch-up here. S Maven has very good IDE support. Gradle has... IDE support. S Maven has project archetypes. Gradle doesn‘t.
Gradle. You access them through Groovy‘s AntBuilder DSL. myProp = ant.properties["my.prop"] ant.copy { from zipTree("/path/to/lib.jar") into "$buildDir/extracted-classes" exclude "com.example/**" }
is simply a set of files bound to a name. dependencies { compile "commons-lang:commons-lang:2.5" compile fileTree(dir: "libs", include: "*.jar") testCompile "junit:junit:4.8.2" }
Real world practical recipes • Focus on intermediate to professional developers • Two chapters on testing and build automation Summer 2011 MEAP edition available http://manning.com/collins