Introducing
Your new presentation assistant.
Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.
Trending searches
Lack of abstraction
Reinvent the wheel
No reuse
No standard
“Everybody’s responsibility” means “Nobody’s responsibility”
Parallel task execution
Ant tasks & projects executions
for migration usage
Understands IDEA’s projects
and Eclipse workspaces
Based on Rake
Uses Ruby Gems
Rake syntax
Last version 1.2.3
(Dec 2007; last commit Dec 2007)
Lacks documentation
Based on Rake (Ruby)
Tasks for Java
Maven2: project structure, artifact specs, repos
Easy calls to Ant tasks
YAML
http://jira.codehaus.org/browse/GRADLE-154
Dependecy
Mngmt
Ant
plugins
Project
Structure
Migration
Ivy
Project
Structure
AntBuilder
Groovy
Migration
Quality
Configuration in various ways:
Groovy, POM.xml, .classpath
Groovy instead of Ruby
JVM, Similar to Java
1.0.1 - 25/09/09
DM based on Ivy
Similar in spirit to Buildr
Quality
Language
Ant tools
1.8.1 - 13/10/2009
Ivy
Scripting part still in plugins!
Ivy
Ant tools
Language
Ant tools
Pre-calculated build plan
Latest version – 0.9
(Feb 09, no commits for 8 months,
1.0 never came)
Almost no documentation
Uses Java6 scripting capabilities
BeanShell, Groovy, JavaScript (Rhino),
JRuby and Jython
Latest version – 0.8 (Sep 09)
German quality, +200 pages TFM
0.7.0 - 16/02/2008
Last commit - 19/02/2008
Sophisticated multi-module
Ant tools
Ivy
Quality
Dependecy
Mngmt
Project
Structure
Ant
plugins
Antwrap
Project
Structure
Ruby
Migration
Quality
Groovy
Migration
Dependecy
Mngmt
Ant
plugins
Project
Structure
Procedure in XML
Script in Java
Control
Tasks variety
Documentation
Good code quality
GroovyMojo
Quality
Migration
Embedder
How instead of What
Lack of dependency management
Rake task
IDE ingeration
Predictive lifecycle & In/Out params
Human friendly data serialization
standard for all programming languages
1.3.5 05/10/2009
Exclusion
Refactoring
Lacks documentation
OSGi & Eclipse
1.0 Sep. 2009
Plugins in Java 5
(like JFrog’s AnnoMojo)
Mixins!
Error reporting
Dependecy
Mngmt
Ant
plugins
Flexible Configuration - not only scope!
Project
Structure
Migration
No delivery date
XML with attributes, Groovy
NO Plexus! (XBean)
New artifact resolution system
Scripting still in plugins!
Admits some problems of Maven2:
code quality & artifact resolution system
“Maven is the AWT of build systems”
@puredanger
"What" instead of "How"
Conflict managers - per configuration
Ant (only more complicated)
Built-in Dependency Managment &
Transitive Dependencies
Convention over Configuration
Verbose XML
Scripting
Standartization and Structure
Mainly used with Ant
How your project looks
Java 1.4
Everything is a plugin - Bad Idea! (Eclipse in the past)
Versions auto-update - Not reproducible build: Things “automagically” seize to work
Downloads the Internet on the first run
Project identifier
Where are the sources
Where are the resources
What are our dependencies
Poorly maintained
Never updated
No documentation
Play bad together
Concise Metadata
Corrupted local repository files
Documentation
Garbaged central repository
Limited Dependency Management
Doxia, Plexus & Friends
Dependencies exclusion:
tedious & limited
No conflict management
Copy this to that
Compile with 1.5 target
Filter web.xml
Package war
Control
Tasks variety
Documentation
Good code quality
"What" instead of "How"
Real scripting language
for scripting part of the build
Built-in Dependency Managment &
Transitive Dependencies
dbcp
Spring
“Maven is the AWT of build systems”
@puredanger
XMLs
Convention over Configuration
Jar
log4j
POM.xml
JPA &
Hibernate
Classes
Standartization and Structure
API
XMLs
POM.xml
Jar
POM.xml
Classes
HTML
War
POM.xml
Classes
css
Flexible configuration
Concise metadata
Conflict resolution
js
Support of Current
Projects & Migration
Apache
Commons
Wicket
Usage of Maven2 tree structure
Usage of POM’s DM and ivy.xml
This will give us IDE free integration!
Language
Ant tools
Gems
Real Scripting Language
Writing scripting part in
Ruby/JRuby, Groovy, Python/Jython
Quality
Ant Tools
Easy usage of Ant tasks
Dependency Management
Documentation
Maintenance
Reproducible builds
Responsible distributive
Open Source
Ivy or improved Maven2 DM
Project Structure
Standard Project Structure and
Convention over Configuration
1. Declare modules in settings.gradle
2. Declare common properties in parent
3. Run MavenDependencyExtractor.groovy
4. Write the scripting part in Groovy, use Ant tasks
5. Optional - generate pom.xml for IDE integration
6. Run Gradle
7. ?
8. Profit!
It is here just for polyglothism
Version ~0.0
No commits for 9 months