LatJUG Java Build Tools

Post on 26-Jan-2015

116 views 0 download

description

 

Transcript of LatJUG Java Build Tools

Java Build Tools

Java User Group Latvia

www.jug.lv

AgendaAnt+IvyMavenGradleComparison

Apache Ant + Apache Ivy http://ant.apache.org

http://ant.apache.org/ivy

Ant is the build system for Java applications. Ant is written in Java.Ivy is a dependency management tool

Ant+Ivy

Ivy Dependencies File

Apache Maven 2 (3) http://maven.apache.org

Maven, a Yiddish word meaning accumulator of knowledgeMaven is a software project management tool.Ant is written in Java.

Maven 2 pom.xml

Maven 2 Lifecycle validate initialize generate-sources process-sources generate-resources process-resources compile process-classes generate-test-sources process-test-sources generate-test-resources process-test-resources test-compile process-test-classes test prepare-package package pre-integration-test integration-test post-integration-test verify install deploy

Maven 2 Multiproject

Gradle http://gradle.org

Gradle is project automation build system.Gradle is written on Groovy.

Gradle simple jar

Gradle Task

Gradle Task Rules

Gradle dependencies

Gradle plugin

gradle -q helloHi from Gradle

Gradle Multiproject

Gradle Profilinggradle –profile

Gradle Features

gradle -q distribution We build the zip with version=1.0-SNAPSHOT

gradle -q release We build the zip with version=1.0 We release now

Who usesGradle

HibernateGrailsGroovySpring (Integration and Security)GriffonGant

Maven 2all others

Ant…

Tool Comparison Ant Maven

GradleLearning difficulty 1 2 3Out of the box 3 1 2Maintenance 1 2 2Speed 2 1 ? Stability ?

ConclusionsAnt will stayMaven 2 -> Maven 3Gradle is the future?no one has obvious advantages

About MeRustam Arslanov

MD of Computer Science (RTU)Work experience as a build engineer for 5 years