SlideShare a Scribd company logo
Tomek's Blog http://kaczanowscy.pl/tomek A brief comparison of  Convention-over-Configuration  features of popular build tools: Ant Maven 3 Polyglot Maven Gradle Based on very simple Java 1.5 project with two dependencies: commons-lang 2.5 jUnit 4.8.2
<?xml version=&quot;1.0&quot;?> <project name=&quot;simple&quot; default=&quot;dist&quot; basedir=&quot;.&quot;> <property name=&quot;src&quot; location=&quot;src/main/java&quot;/> <property name=&quot;srcTest&quot; location=&quot;src/test/java&quot;/> <property name=&quot;build&quot; location=&quot;build&quot;/> <property name=&quot;dist&quot; location=&quot;${build}/lib&quot;/> <property name=&quot;version&quot; value=&quot;1.0-SNAPSHOT&quot; /> <path id=&quot;classpath.compile&quot;> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> </path> <path id=&quot;classpath.test&quot;> <pathelement location=&quot;libs/junit-4.8.2.jar&quot;/> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> <pathelement location=&quot;${srcTest}&quot;/> <pathelement location=&quot;${build}/classes&quot;/> <pathelement location=&quot;${build}/test-classes&quot;/> </path> <target name=&quot;init&quot;> <mkdir dir=&quot;${build}/classes&quot;/> <mkdir dir=&quot;${build}/test-classes&quot;/> </target> <target name=&quot;compile&quot; depends=&quot;init&quot;> <javac srcdir=&quot;${src}&quot; destdir=&quot;${build}/classes&quot;> <classpath refid=&quot;classpath.compile&quot;/> </javac> </target> <target name=&quot;testCompile&quot; depends=&quot;compile&quot;> <javac srcdir=&quot;${srcTest}&quot; destdir=&quot;${build}/test-classes&quot;> <classpath refid=&quot;classpath.test&quot;/> </javac> </target> <target name=&quot;test&quot; depends=&quot;testCompile&quot;> <junit fork=&quot;yes&quot; haltonfailure=&quot;yes&quot;> <batchtest fork=&quot;yes&quot;> <fileset dir=&quot;${srcTest}&quot;> <include name=&quot;**/*Test.java&quot;/> </fileset> </batchtest> <classpath refid=&quot;classpath.test&quot;/> <formatter type=&quot;plain&quot;/> </junit> </target> <target name=&quot;dist&quot; depends=&quot;test&quot;> <mkdir dir=&quot;${dist}&quot;/> <jar jarfile=&quot;${dist}/coc-comparison-${version}.jar&quot; basedir=&quot;${build}/classes&quot;/> </target> <target name=&quot;clean&quot;> <delete dir=&quot;${build}&quot;/> </target> </project> Tomek's Blog http://kaczanowscy.pl/tomek Convention Over Configuration
<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0  http://maven.apache.org/maven-v4_0_0.xsd&quot;> <modelVersion>4.0.0</modelVersion> <groupId>grId</groupId> <artifactId>coc-comparison</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> </project> <?xml version=&quot;1.0&quot;?> <project name=&quot;simple&quot; default=&quot;dist&quot; basedir=&quot;.&quot;> <property name=&quot;src&quot; location=&quot;src/main/java&quot;/> <property name=&quot;srcTest&quot; location=&quot;src/test/java&quot;/> <property name=&quot;build&quot; location=&quot;build&quot;/> <property name=&quot;dist&quot; location=&quot;${build}/lib&quot;/> <property name=&quot;version&quot; value=&quot;1.0-SNAPSHOT&quot; /> <path id=&quot;classpath.compile&quot;> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> </path> <path id=&quot;classpath.test&quot;> <pathelement location=&quot;libs/junit-4.8.2.jar&quot;/> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> <pathelement location=&quot;${srcTest}&quot;/> <pathelement location=&quot;${build}/classes&quot;/> <pathelement location=&quot;${build}/test-classes&quot;/> </path> <target name=&quot;init&quot;> <mkdir dir=&quot;${build}/classes&quot;/> <mkdir dir=&quot;${build}/test-classes&quot;/> </target> <target name=&quot;compile&quot; depends=&quot;init&quot;> <javac srcdir=&quot;${src}&quot; destdir=&quot;${build}/classes&quot;> <classpath refid=&quot;classpath.compile&quot;/> </javac> </target> <target name=&quot;testCompile&quot; depends=&quot;compile&quot;> <javac srcdir=&quot;${srcTest}&quot; destdir=&quot;${build}/test-classes&quot;> <classpath refid=&quot;classpath.test&quot;/> </javac> </target> <target name=&quot;test&quot; depends=&quot;testCompile&quot;> <junit fork=&quot;yes&quot; haltonfailure=&quot;yes&quot;> <batchtest fork=&quot;yes&quot;> <fileset dir=&quot;${srcTest}&quot;> <include name=&quot;**/*Test.java&quot;/> </fileset> </batchtest> <classpath refid=&quot;classpath.test&quot;/> <formatter type=&quot;plain&quot;/> </junit> </target> <target name=&quot;dist&quot; depends=&quot;test&quot;> <mkdir dir=&quot;${dist}&quot;/> <jar jarfile=&quot;${dist}/coc-comparison-${version}.jar&quot; basedir=&quot;${build}/classes&quot;/> </target> <target name=&quot;clean&quot;> <delete dir=&quot;${build}&quot;/> </target> </project> Tomek's Blog http://kaczanowscy.pl/tomek Convention Over Configuration
<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0  http://maven.apache.org/maven-v4_0_0.xsd&quot;> <modelVersion>4.0.0</modelVersion> <groupId>grId</groupId> <artifactId>coc-comparison</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> </project> <?xml version=&quot;1.0&quot;?> <project name=&quot;simple&quot; default=&quot;dist&quot; basedir=&quot;.&quot;> <property name=&quot;src&quot; location=&quot;src/main/java&quot;/> <property name=&quot;srcTest&quot; location=&quot;src/test/java&quot;/> <property name=&quot;build&quot; location=&quot;build&quot;/> <property name=&quot;dist&quot; location=&quot;${build}/lib&quot;/> <property name=&quot;version&quot; value=&quot;1.0-SNAPSHOT&quot; /> <path id=&quot;classpath.compile&quot;> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> </path> <path id=&quot;classpath.test&quot;> <pathelement location=&quot;libs/junit-4.8.2.jar&quot;/> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> <pathelement location=&quot;${srcTest}&quot;/> <pathelement location=&quot;${build}/classes&quot;/> <pathelement location=&quot;${build}/test-classes&quot;/> </path> <target name=&quot;init&quot;> <mkdir dir=&quot;${build}/classes&quot;/> <mkdir dir=&quot;${build}/test-classes&quot;/> </target> <target name=&quot;compile&quot; depends=&quot;init&quot;> <javac srcdir=&quot;${src}&quot; destdir=&quot;${build}/classes&quot;> <classpath refid=&quot;classpath.compile&quot;/> </javac> </target> <target name=&quot;testCompile&quot; depends=&quot;compile&quot;> <javac srcdir=&quot;${srcTest}&quot; destdir=&quot;${build}/test-classes&quot;> <classpath refid=&quot;classpath.test&quot;/> </javac> </target> <target name=&quot;test&quot; depends=&quot;testCompile&quot;> <junit fork=&quot;yes&quot; haltonfailure=&quot;yes&quot;> <batchtest fork=&quot;yes&quot;> <fileset dir=&quot;${srcTest}&quot;> <include name=&quot;**/*Test.java&quot;/> </fileset> </batchtest> <classpath refid=&quot;classpath.test&quot;/> <formatter type=&quot;plain&quot;/> </junit> </target> <target name=&quot;dist&quot; depends=&quot;test&quot;> <mkdir dir=&quot;${dist}&quot;/> <jar jarfile=&quot;${dist}/coc-comparison-${version}.jar&quot; basedir=&quot;${build}/classes&quot;/> </target> <target name=&quot;clean&quot;> <delete dir=&quot;${build}&quot;/> </target> </project> Tomek's Blog http://kaczanowscy.pl/tomek project { modelVersion '4.0.0' artifactId 'coc-comparison' groupId 'grId' version '1.0-SNAPSHOT' dependencies { dependency('commons-lang:commons-lang:2.5') dependency('junit:junit:4.8.2') } build { plugins { plugin { groupId 'org.apache.maven.plugins' artifactId 'maven-compiler-plugin' configuration { source '1.5' target '1.5' } } } } } Convention Over Configuration Polyglot
apply plugin: 'java' version=&quot;1.0-SNAPSHOT&quot; group=&quot;grId&quot; archivesBaseName=&quot;coc-comparison&quot; repositories { mavenCentral() } dependencies { compile 'commons-lang:commons-lang:2.5' testCompile 'junit:junit:4.8.1' } <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0  http://maven.apache.org/maven-v4_0_0.xsd&quot;> <modelVersion>4.0.0</modelVersion> <groupId>grId</groupId> <artifactId>coc-comparison</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> </project> <?xml version=&quot;1.0&quot;?> <project name=&quot;simple&quot; default=&quot;dist&quot; basedir=&quot;.&quot;> <property name=&quot;src&quot; location=&quot;src/main/java&quot;/> <property name=&quot;srcTest&quot; location=&quot;src/test/java&quot;/> <property name=&quot;build&quot; location=&quot;build&quot;/> <property name=&quot;dist&quot; location=&quot;${build}/lib&quot;/> <property name=&quot;version&quot; value=&quot;1.0-SNAPSHOT&quot; /> <path id=&quot;classpath.compile&quot;> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> </path> <path id=&quot;classpath.test&quot;> <pathelement location=&quot;libs/junit-4.8.2.jar&quot;/> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> <pathelement location=&quot;${srcTest}&quot;/> <pathelement location=&quot;${build}/classes&quot;/> <pathelement location=&quot;${build}/test-classes&quot;/> </path> <target name=&quot;init&quot;> <mkdir dir=&quot;${build}/classes&quot;/> <mkdir dir=&quot;${build}/test-classes&quot;/> </target> <target name=&quot;compile&quot; depends=&quot;init&quot;> <javac srcdir=&quot;${src}&quot; destdir=&quot;${build}/classes&quot;> <classpath refid=&quot;classpath.compile&quot;/> </javac> </target> <target name=&quot;testCompile&quot; depends=&quot;compile&quot;> <javac srcdir=&quot;${srcTest}&quot; destdir=&quot;${build}/test-classes&quot;> <classpath refid=&quot;classpath.test&quot;/> </javac> </target> <target name=&quot;test&quot; depends=&quot;testCompile&quot;> <junit fork=&quot;yes&quot; haltonfailure=&quot;yes&quot;> <batchtest fork=&quot;yes&quot;> <fileset dir=&quot;${srcTest}&quot;> <include name=&quot;**/*Test.java&quot;/> </fileset> </batchtest> <classpath refid=&quot;classpath.test&quot;/> <formatter type=&quot;plain&quot;/> </junit> </target> <target name=&quot;dist&quot; depends=&quot;test&quot;> <mkdir dir=&quot;${dist}&quot;/> <jar jarfile=&quot;${dist}/coc-comparison-${version}.jar&quot; basedir=&quot;${build}/classes&quot;/> </target> <target name=&quot;clean&quot;> <delete dir=&quot;${build}&quot;/> </target> </project> Tomek's Blog http://kaczanowscy.pl/tomek project { modelVersion '4.0.0' artifactId 'coc-comparison' groupId 'grId' version '1.0-SNAPSHOT' dependencies { dependency('commons-lang:commons-lang:2.5') dependency('junit:junit:4.8.2') } build { plugins { plugin { groupId 'org.apache.maven.plugins' artifactId 'maven-compiler-plugin' configuration { source '1.5' target '1.5' } } } } } Convention Over Configuration Polyglot
Thank you Tomek Kaczanowski http://kaczanowscy.pl/tomek

More Related Content

PPTX
La RéVolution Industrielle En France
PDF
Philippe LUKACS Catalyser, Innover pour contribuer à un futur souhaitable (PA...
PPT
pensées positives
PPS
美妙的想象
PDF
La veille de Red Guy du 22.02.12 : Les marques qui ont changé de métier
PPS
Augier00
PDF
La grande conversation mediatique : Partie 1
La RéVolution Industrielle En France
Philippe LUKACS Catalyser, Innover pour contribuer à un futur souhaitable (PA...
pensées positives
美妙的想象
La veille de Red Guy du 22.02.12 : Les marques qui ont changé de métier
Augier00
La grande conversation mediatique : Partie 1

Viewers also liked (17)

PPT
Reinos cristianos
PPTX
Présentation Energy Enhancer
PDF
L' Alimentation Responsable( Partie 3)
PPTX
Présentation des MOOC at Google GDG BARCAMP Douala
PPTX
DOC
Le point OOAS/WAHO-SFMC-StratAdviser sur ébola au vendredi 26 septembre 2014
PDF
Partie 5: Mémoire Dynamique — Programmation orientée objet en C++
PPTX
Glosario 4, p. manuel
PPS
Antiguoregimen
PPTX
Trampas sicologicas en la toma de decisiones jr
PPS
Primeiras fotos a cores
PDF
La réforme de la formation professionnelle : qu'est-ce qui va changer pour le...
PPTX
software como soporte en el mejoramiento de la comprensión y producción de cu...
PDF
Samillustrations01
PPS
02 Trouduculboss
PPTX
CON LAS TIC NAVEGUEMOS POR EL INCREIBLE MUNDO DE LA IMAGINACIÓN
Reinos cristianos
Présentation Energy Enhancer
L' Alimentation Responsable( Partie 3)
Présentation des MOOC at Google GDG BARCAMP Douala
Le point OOAS/WAHO-SFMC-StratAdviser sur ébola au vendredi 26 septembre 2014
Partie 5: Mémoire Dynamique — Programmation orientée objet en C++
Glosario 4, p. manuel
Antiguoregimen
Trampas sicologicas en la toma de decisiones jr
Primeiras fotos a cores
La réforme de la formation professionnelle : qu'est-ce qui va changer pour le...
software como soporte en el mejoramiento de la comprensión y producción de cu...
Samillustrations01
02 Trouduculboss
CON LAS TIC NAVEGUEMOS POR EL INCREIBLE MUNDO DE LA IMAGINACIÓN
Ad

More from Tomek Kaczanowski (11)

PDF
2015 ACE! Conference slides
PDF
Grupowe podejmowanie decyzji
PDF
2013 DevFest Vienna - Bad Tests, Good Tests
PDF
33rd Degree 2013, Bad Tests, Good Tests
PPT
2012 JDays Bad Tests Good Tests
PDF
Confitura 2012 Bad Tests, Good Tests
PDF
GeeCON 2012 Bad Tests, Good Tests
PDF
Sample Chapter of Practical Unit Testing with TestNG and Mockito
ODP
Practical Unit Testing with TestNG and Mockito
PDF
GeeCON 2011 Who Watches The Watchmen? - On Quality Of Tests
PDF
Gradle talk, Javarsovia 2010
2015 ACE! Conference slides
Grupowe podejmowanie decyzji
2013 DevFest Vienna - Bad Tests, Good Tests
33rd Degree 2013, Bad Tests, Good Tests
2012 JDays Bad Tests Good Tests
Confitura 2012 Bad Tests, Good Tests
GeeCON 2012 Bad Tests, Good Tests
Sample Chapter of Practical Unit Testing with TestNG and Mockito
Practical Unit Testing with TestNG and Mockito
GeeCON 2011 Who Watches The Watchmen? - On Quality Of Tests
Gradle talk, Javarsovia 2010
Ad

Convention Over Configuration - Maven 3, Polyglot Maven, Gradle and Ant

  • 1. Tomek's Blog http://kaczanowscy.pl/tomek A brief comparison of Convention-over-Configuration features of popular build tools: Ant Maven 3 Polyglot Maven Gradle Based on very simple Java 1.5 project with two dependencies: commons-lang 2.5 jUnit 4.8.2
  • 2. <?xml version=&quot;1.0&quot;?> <project name=&quot;simple&quot; default=&quot;dist&quot; basedir=&quot;.&quot;> <property name=&quot;src&quot; location=&quot;src/main/java&quot;/> <property name=&quot;srcTest&quot; location=&quot;src/test/java&quot;/> <property name=&quot;build&quot; location=&quot;build&quot;/> <property name=&quot;dist&quot; location=&quot;${build}/lib&quot;/> <property name=&quot;version&quot; value=&quot;1.0-SNAPSHOT&quot; /> <path id=&quot;classpath.compile&quot;> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> </path> <path id=&quot;classpath.test&quot;> <pathelement location=&quot;libs/junit-4.8.2.jar&quot;/> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> <pathelement location=&quot;${srcTest}&quot;/> <pathelement location=&quot;${build}/classes&quot;/> <pathelement location=&quot;${build}/test-classes&quot;/> </path> <target name=&quot;init&quot;> <mkdir dir=&quot;${build}/classes&quot;/> <mkdir dir=&quot;${build}/test-classes&quot;/> </target> <target name=&quot;compile&quot; depends=&quot;init&quot;> <javac srcdir=&quot;${src}&quot; destdir=&quot;${build}/classes&quot;> <classpath refid=&quot;classpath.compile&quot;/> </javac> </target> <target name=&quot;testCompile&quot; depends=&quot;compile&quot;> <javac srcdir=&quot;${srcTest}&quot; destdir=&quot;${build}/test-classes&quot;> <classpath refid=&quot;classpath.test&quot;/> </javac> </target> <target name=&quot;test&quot; depends=&quot;testCompile&quot;> <junit fork=&quot;yes&quot; haltonfailure=&quot;yes&quot;> <batchtest fork=&quot;yes&quot;> <fileset dir=&quot;${srcTest}&quot;> <include name=&quot;**/*Test.java&quot;/> </fileset> </batchtest> <classpath refid=&quot;classpath.test&quot;/> <formatter type=&quot;plain&quot;/> </junit> </target> <target name=&quot;dist&quot; depends=&quot;test&quot;> <mkdir dir=&quot;${dist}&quot;/> <jar jarfile=&quot;${dist}/coc-comparison-${version}.jar&quot; basedir=&quot;${build}/classes&quot;/> </target> <target name=&quot;clean&quot;> <delete dir=&quot;${build}&quot;/> </target> </project> Tomek's Blog http://kaczanowscy.pl/tomek Convention Over Configuration
  • 3. <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;> <modelVersion>4.0.0</modelVersion> <groupId>grId</groupId> <artifactId>coc-comparison</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> </project> <?xml version=&quot;1.0&quot;?> <project name=&quot;simple&quot; default=&quot;dist&quot; basedir=&quot;.&quot;> <property name=&quot;src&quot; location=&quot;src/main/java&quot;/> <property name=&quot;srcTest&quot; location=&quot;src/test/java&quot;/> <property name=&quot;build&quot; location=&quot;build&quot;/> <property name=&quot;dist&quot; location=&quot;${build}/lib&quot;/> <property name=&quot;version&quot; value=&quot;1.0-SNAPSHOT&quot; /> <path id=&quot;classpath.compile&quot;> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> </path> <path id=&quot;classpath.test&quot;> <pathelement location=&quot;libs/junit-4.8.2.jar&quot;/> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> <pathelement location=&quot;${srcTest}&quot;/> <pathelement location=&quot;${build}/classes&quot;/> <pathelement location=&quot;${build}/test-classes&quot;/> </path> <target name=&quot;init&quot;> <mkdir dir=&quot;${build}/classes&quot;/> <mkdir dir=&quot;${build}/test-classes&quot;/> </target> <target name=&quot;compile&quot; depends=&quot;init&quot;> <javac srcdir=&quot;${src}&quot; destdir=&quot;${build}/classes&quot;> <classpath refid=&quot;classpath.compile&quot;/> </javac> </target> <target name=&quot;testCompile&quot; depends=&quot;compile&quot;> <javac srcdir=&quot;${srcTest}&quot; destdir=&quot;${build}/test-classes&quot;> <classpath refid=&quot;classpath.test&quot;/> </javac> </target> <target name=&quot;test&quot; depends=&quot;testCompile&quot;> <junit fork=&quot;yes&quot; haltonfailure=&quot;yes&quot;> <batchtest fork=&quot;yes&quot;> <fileset dir=&quot;${srcTest}&quot;> <include name=&quot;**/*Test.java&quot;/> </fileset> </batchtest> <classpath refid=&quot;classpath.test&quot;/> <formatter type=&quot;plain&quot;/> </junit> </target> <target name=&quot;dist&quot; depends=&quot;test&quot;> <mkdir dir=&quot;${dist}&quot;/> <jar jarfile=&quot;${dist}/coc-comparison-${version}.jar&quot; basedir=&quot;${build}/classes&quot;/> </target> <target name=&quot;clean&quot;> <delete dir=&quot;${build}&quot;/> </target> </project> Tomek's Blog http://kaczanowscy.pl/tomek Convention Over Configuration
  • 4. <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;> <modelVersion>4.0.0</modelVersion> <groupId>grId</groupId> <artifactId>coc-comparison</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> </project> <?xml version=&quot;1.0&quot;?> <project name=&quot;simple&quot; default=&quot;dist&quot; basedir=&quot;.&quot;> <property name=&quot;src&quot; location=&quot;src/main/java&quot;/> <property name=&quot;srcTest&quot; location=&quot;src/test/java&quot;/> <property name=&quot;build&quot; location=&quot;build&quot;/> <property name=&quot;dist&quot; location=&quot;${build}/lib&quot;/> <property name=&quot;version&quot; value=&quot;1.0-SNAPSHOT&quot; /> <path id=&quot;classpath.compile&quot;> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> </path> <path id=&quot;classpath.test&quot;> <pathelement location=&quot;libs/junit-4.8.2.jar&quot;/> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> <pathelement location=&quot;${srcTest}&quot;/> <pathelement location=&quot;${build}/classes&quot;/> <pathelement location=&quot;${build}/test-classes&quot;/> </path> <target name=&quot;init&quot;> <mkdir dir=&quot;${build}/classes&quot;/> <mkdir dir=&quot;${build}/test-classes&quot;/> </target> <target name=&quot;compile&quot; depends=&quot;init&quot;> <javac srcdir=&quot;${src}&quot; destdir=&quot;${build}/classes&quot;> <classpath refid=&quot;classpath.compile&quot;/> </javac> </target> <target name=&quot;testCompile&quot; depends=&quot;compile&quot;> <javac srcdir=&quot;${srcTest}&quot; destdir=&quot;${build}/test-classes&quot;> <classpath refid=&quot;classpath.test&quot;/> </javac> </target> <target name=&quot;test&quot; depends=&quot;testCompile&quot;> <junit fork=&quot;yes&quot; haltonfailure=&quot;yes&quot;> <batchtest fork=&quot;yes&quot;> <fileset dir=&quot;${srcTest}&quot;> <include name=&quot;**/*Test.java&quot;/> </fileset> </batchtest> <classpath refid=&quot;classpath.test&quot;/> <formatter type=&quot;plain&quot;/> </junit> </target> <target name=&quot;dist&quot; depends=&quot;test&quot;> <mkdir dir=&quot;${dist}&quot;/> <jar jarfile=&quot;${dist}/coc-comparison-${version}.jar&quot; basedir=&quot;${build}/classes&quot;/> </target> <target name=&quot;clean&quot;> <delete dir=&quot;${build}&quot;/> </target> </project> Tomek's Blog http://kaczanowscy.pl/tomek project { modelVersion '4.0.0' artifactId 'coc-comparison' groupId 'grId' version '1.0-SNAPSHOT' dependencies { dependency('commons-lang:commons-lang:2.5') dependency('junit:junit:4.8.2') } build { plugins { plugin { groupId 'org.apache.maven.plugins' artifactId 'maven-compiler-plugin' configuration { source '1.5' target '1.5' } } } } } Convention Over Configuration Polyglot
  • 5. apply plugin: 'java' version=&quot;1.0-SNAPSHOT&quot; group=&quot;grId&quot; archivesBaseName=&quot;coc-comparison&quot; repositories { mavenCentral() } dependencies { compile 'commons-lang:commons-lang:2.5' testCompile 'junit:junit:4.8.1' } <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;> <modelVersion>4.0.0</modelVersion> <groupId>grId</groupId> <artifactId>coc-comparison</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> </project> <?xml version=&quot;1.0&quot;?> <project name=&quot;simple&quot; default=&quot;dist&quot; basedir=&quot;.&quot;> <property name=&quot;src&quot; location=&quot;src/main/java&quot;/> <property name=&quot;srcTest&quot; location=&quot;src/test/java&quot;/> <property name=&quot;build&quot; location=&quot;build&quot;/> <property name=&quot;dist&quot; location=&quot;${build}/lib&quot;/> <property name=&quot;version&quot; value=&quot;1.0-SNAPSHOT&quot; /> <path id=&quot;classpath.compile&quot;> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> </path> <path id=&quot;classpath.test&quot;> <pathelement location=&quot;libs/junit-4.8.2.jar&quot;/> <pathelement location=&quot;libs/commons-lang-2.5.jar&quot;/> <pathelement location=&quot;${srcTest}&quot;/> <pathelement location=&quot;${build}/classes&quot;/> <pathelement location=&quot;${build}/test-classes&quot;/> </path> <target name=&quot;init&quot;> <mkdir dir=&quot;${build}/classes&quot;/> <mkdir dir=&quot;${build}/test-classes&quot;/> </target> <target name=&quot;compile&quot; depends=&quot;init&quot;> <javac srcdir=&quot;${src}&quot; destdir=&quot;${build}/classes&quot;> <classpath refid=&quot;classpath.compile&quot;/> </javac> </target> <target name=&quot;testCompile&quot; depends=&quot;compile&quot;> <javac srcdir=&quot;${srcTest}&quot; destdir=&quot;${build}/test-classes&quot;> <classpath refid=&quot;classpath.test&quot;/> </javac> </target> <target name=&quot;test&quot; depends=&quot;testCompile&quot;> <junit fork=&quot;yes&quot; haltonfailure=&quot;yes&quot;> <batchtest fork=&quot;yes&quot;> <fileset dir=&quot;${srcTest}&quot;> <include name=&quot;**/*Test.java&quot;/> </fileset> </batchtest> <classpath refid=&quot;classpath.test&quot;/> <formatter type=&quot;plain&quot;/> </junit> </target> <target name=&quot;dist&quot; depends=&quot;test&quot;> <mkdir dir=&quot;${dist}&quot;/> <jar jarfile=&quot;${dist}/coc-comparison-${version}.jar&quot; basedir=&quot;${build}/classes&quot;/> </target> <target name=&quot;clean&quot;> <delete dir=&quot;${build}&quot;/> </target> </project> Tomek's Blog http://kaczanowscy.pl/tomek project { modelVersion '4.0.0' artifactId 'coc-comparison' groupId 'grId' version '1.0-SNAPSHOT' dependencies { dependency('commons-lang:commons-lang:2.5') dependency('junit:junit:4.8.2') } build { plugins { plugin { groupId 'org.apache.maven.plugins' artifactId 'maven-compiler-plugin' configuration { source '1.5' target '1.5' } } } } } Convention Over Configuration Polyglot
  • 6. Thank you Tomek Kaczanowski http://kaczanowscy.pl/tomek