Apache Maven Simplifica el Proceso de Construcción -- Incluso más que Ant

Sigue estos pasos para crear un sencillo proyecto Maven y ejecutar unos cuantos goals Maven:

  1. Crea el directorio del proyecto:
    c:\daven
  2. Crea un directorio para el c�digo fuente Java:
    c:\daven\src\java
  3. Crea directorios para tu estructura de paquetes (smartsoft.daven.*):
    c:\daven\src\java\smartsoft\daven
  4. 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;
        }
    
    }
    
  5. 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.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR