Sigue estos pasos para crear un sencillo proyecto Maven y ejecutar unos cuantos goals Maven:
- Crea el directorio del proyecto:
c:\daven
- Crea un directorio para el c�digo fuente Java:
c:\daven\src\java
- Crea directorios para tu estructura de paquetes (smartsoft.daven.*):
c:\daven\src\java\smartsoft\daven
- Crea una clase sencilla llamada Box con el nombre de fichero c:\daven\src\java\smartsoft\daven\Box.java:
package smartsoft.daven; public class Box { private int length; private int width; public Box(int length, int width) { this.length = length; this.width = width; } public int getArea(){ return length * width; } }
- Crea un POM m�nimo con el nombre de fichero C:\daven\project.xml:
<project> <id>daven</id> <currentVersion>1.0</currentVersion> <build> <sourceDirectory> ${basedir}/src/java </sourceDirectory> </build> </project>
Ahora, ejecuta uno de los goals de Maven, java:compile. Abre una consola de comandos, entra en tu directorio de proyecto (C:\daven), y teclea:
maven java:compile
Tu salida de pantalla deber�a parecerse a �sta:
C:\daven> maven java:compile java:prepare-filesystem: java:compile: [echo] Compiling to C:\daven/target/classes BUILD SUCCESSFUL Total time: 33 seconds
Observa que el goal java:compile tiene, como prerequisito, el goal java:prepare-filesystem. Un prerequisite de Maven es an�logo a un depends de Ant.
Cuando mires tu sistema de ficheros, ver�s que Maven ha creado una estructura de directorio para tus ficheros de clases y ha situado en �l las clases compiladas. Tambi�n ha creado algunos otros directorios relacionados con las unidades de testeo, que discutiremos en breve. Aqu� puedes ver a qu� se parecer� tu estructura de directorios:
c:\daven src java smartsoft daven Box.java target classes smartsoft daven Box.class test-classes test-reports
Prueba algunos goals m�s. En la l�nea de comandos, teclea:
maven jar
Deber�as ver una salida como �sta:
C:\daven> maven jar java:prepare-filesystem: java:compile: [echo] Compiling to C:\daven/target/classes java:jar-resources: test:prepare-filesystem: test:test-resources: test:compile: [echo] No test source files to compile test:test: [echo] No tests to run BUILD SUCCESSFUL Total time: 6 seconds
Observa que el goal jar tiene otros varios goals como prerequisitos. Digamos:
java:prepare-filesystem java:compile java:jar-resources test:prepare-filesystem test:test-resources test:compile test:test
Observa, tambi�n que Maven ha creado un fichero JAR en el directorio fuente llamado daven-1.0.jar. Ha derivado el nombre del fichero de los elementos projectId y currentVersion de nuestro fichero project.xml. Ahora prueba el goal clean. En la l�nea de comandos, teclea:
maven clean
Tu salida de pantalla deber�a parecerse a esto:
C:\daven> maven clean clean:clean: [delete] Deleting directory C:\daven\target BUILD SUCCESSFUL Total time: 7 seconds
Si examinas ahora tu sistema de ficheros, ver�s que la carpeta target ha desaparecido.
�Entender los Goals
Hasta ahora hemos visto tres goals de Maven: java:compile, jar, y clean. Recuerda que aunque los goals de Maven son equivalentes a los Targets de Ant, no necesitas crear goals por t� mismo. Maven proporciona la mayor�a de los goals que necesites. En estos momentos, Maven viene con unos 312 goals.
Tambi�n debes tener en mente que los goals de Maven est�n organizados en plug-ins. De echo, la site de Maven describe la herramienta como "un peque�o coraz�n que trabaja con un sat�lite de plug-ins". La mayoria de las funcionalidades de Maven vienen en forma de plug-ins. Los plug-ins incluso proporcionan los prefijos para los nombres de goals. Por ejemplo, java:compile se refiere al goal compile del plug-in java. Y kodo:enhance se refiere al goal enhance del plug-in kodo. Si ejecutas un plug-in sin un nombre de goal, invocar�s el goal por defecto de ese plug-in. Por ejemplo, maven jar invoca el goal por defecto del plug-in jar.