sábado, mayo 17, 2008

Maven development (Segunda Parte)

Hello

Bueno continuando con la primera parte de maven...ahora vamos a crear un proyecto, asociarlo a nuestro IDE favorito y agregar dependencia a nuestro proyecto, además de interactuar entre dos proyectos nuestros y crear test para estos.

Para empezar, creemos dos proyectos, uno sera una librería matemática (suma, resta...) y el otro sera el que ejecutara los proceso, algo simple pero sirve para entender a lo que voy.
$ mvn archetype:create -DgroupId=org.test.app -DartifactId=math-core
$ mvn archetype:create -DgroupId=org.test.app -DartifactId=math-logic
después de ejecutar estos comando se crearon dos proyectos , con la estructura que les mencione en el cap anterior.

Ahora en mi caso, en estos momento uso eclipse , pero igual me gusta netBeans, pero por costumbre me quedo con el primero. Asi creare los proyectos como eclipse.

Primero voy a las carpetas de los proyectos (math-core y math-logic) y ejecuto el siguiente comando , en los dos directorios :
math-core $ mvn eclipse:eclipse
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------

math-logic $ mvn eclipse:eclipse
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------

Después de hacer esto solo abrimos el eclipse y importamos estos dos proyectos , luego, borramos las librerías que genero en las propiedades de los proyectos y agregamos la libreria "MAVEN Manager Dependency". Si no esta la variable es por que no tienes el plugins de maven para eclipse, en ese caso instala esto. Después botón derecho sobre el proyecto y vas a la opción maven la habilitas.

Si prefieres netbeans cambia en el comando eclipse por netbeans y listo.

Continuando, ahora sobre el proyecto math-core trabajaremos primero, le agregaremos la librería "log4j", para manejar un log de los procesos.

Para hacer esto, botón derecho/Maven/Add Dependency, luego en esa ventana ponemos el nombre de la librería , la seleccionamos y listo, ya esta agregada.

Para verificar que se agrego la dependency, mirar el archivo pom.xml y en la parte de dependencias se debe haber agregado lo siguiente o algo parecido.

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.9</version>
</dependency>



Después de esto creen una classe que contenga methodos, uno que sume, reste y multiplique, estos methodo que retornen el resultado y se pasen loa valores .

Ej:
(...)
public Integer suma(Integer x, Integer y) {
return x + y;
}

public Integer resta(Integer x, Integer y) {
return x - y;
}

public Integer mul(Integer x, Integer y) {
return x * y;
}

public Integer div(Integer x, Integer y) {
return x / y;
}
(...)


después de esto creamos los test para probar estos methodos. Dentro de la carpeta "src/test/java", Creamos una classe que llame a estas.

Ej :

package org.test.app;

import junit.framework.TestCase;

public class CalculatorTest extends TestCase {

private Calculator _cal;

private Integer x = 19;

private Integer y = 40;

public CalculatorTest() {
_cal = new Calculator();
}

public void testSuma() {
System.out.println("Suma : " + _cal.suma(x, y));
}

public void testResta() {
System.out.println("Resta : " + _cal.resta(x, y));
}

public void testMul() {
System.out.println("Mul : " + _cal.mul(x, y));
}

public void testDiv() {
System.out.println("Div : " + _cal.div(x, y));
}

}


Ejecutamos el test con el siguiente comando :

math-core $ mvn clean test

y la salida debiera ser algo así :
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.test.app.CalculatorTest
Suma : 59
Resta : -21
Mul : 760
Div : 0
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.304 sec

Results :

Tests run: 4, Failures: 0, Errors: 0, Skipped: 0


Ahora dentro de la classe que suma agregamos los methodos de las librerías para saber que hace el methodo al ser llamado, y esto lo hacemos usando la dependencia que le agregamos.

Como ya finalizamos. procedemos a instalar nuestra librería , para que esta pueda ser usada por otros proyectos , esto lo hacemos de la siguiente forma :

math-core $ mvn clean install


Al hacer esto, maven compila, corre nuestros test y instala el JAR del proyecto en nuestro repositorio local.

Como ya terminamos la librería que calcula, ahora trabajamos con el proyecto que la referencia "math-logic"

En este proyecto, agregamos la dependencia llamada "math-core", y con esto aparecerá dentro dentro de nuestro pom.xml lo siguiente :

<dependency>
<groupId>org.test.app</groupId>
<artifactId>math-corej</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
y con esto ya podemos utilizar la librería dentro de este proyecto.Asi que creamos una classe que se le entregen dos parametros y que llame a los methodo de la libreria .

Ej :
package org.test.app;

public class Main {

/**
* @param args
*/
public static void main(String[] args) {
Integer x = new Integer(args[0]);
Integer y = new Integer(args[1]);

Calculator cal = new Calculator();
cal.suma(x, y);
cal.resta(x, y);
cal.mul(x, y);
cal.div(x, y);
}

}
Ahora, piensen que este ultimo proyecto puede ser un proyecto WEB o GUI y por medio de una interface le entreguen los parámetros a otra librería.

y con esto esta listo, creamos un test y llamamos desde acá a las methodos de calculo

bueno, con esto termine el pequeño manual de Maven.

Suerte...

No hay comentarios.: