Una delle critiche che si sente più spesso su Maven è che l'XML è molto verboso.
Con Maven Polyglot potete scrivere questo:
project { modelVersion '4.0.0' groupId 'io.takari.polyglot' artifactId 'groovy-project' version '0.0.1-SNAPSHOT' // // Possibly a more preferrable way to generate the groupId, // artifactId, and version elements: // // $artifact('io.takari.polyglot:groovy-project:0.0.1-SNAPSHOT') // name 'Groovy Maven Love' build { // // Arbitrary Groovy code can be executed in any phase in the form of a dynamic plugin // $execute(id: 'hello', phase: 'validate') { println "" println "Hello! I am Groovy inside Maven. What? What am I doing here?? I'm confused. I guess we are friends now. Maybe." println "" } } }
Dovete avere Java 1.7 e Maven 3.3.1.
Per farlo funzionare, dovete creare una cartella .mvn e metterci dentro un file extensions.xml con scritto dentro (nel caso di Groovy):
<?xml version="1.0" encoding="UTF-8"?> <extensions> <extension> <groupId>io.takari.polyglot</groupId> <artifactId>polyglot-groovy</artifactId> <version>0.1.5</version> </extension> </extensions>
Il motivo per il quale è importante che Maven diventi poliglotta è che ci sono un sacco di plugin per Maven ed estensioni di strumenti di terze parti.
Tra le alernative a Maven ci sono:
- Apache Ivy, dependency management per ANT
- Grape, dell'ecosistema Groovy
- Gradle
- Apache Buildr
- Typesafe SBT
- Leiningen per Clojure
Scriveteci cosa ne pensate nei commenti qua sotto.