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

A menos que las unidades de testeo automatizadas est�n claramente integradas en el proceso de construcci�n, los desarrolladores tienden a saltarselas. Maven elimina cualquier excusa para no testear haci�ndolo f�cil. Todo que lo que tienes que hacer es decirle a Maven donde encontrar tus clases de tests. Aqu� est�n los pasos:

  1. En project.xml, a�ade el elemento unitTestSourceDirectory directamente debajo del elemento sourceDirectory:
    ...
    </sourceDirectory>
    <unitTestSourceDirectory>
        ${basedir}/src/test
    </unitTestSourceDirectory>
    ...
    
  2. Crea una clase de test llamada BoxTest: con el nombre de fichero c:\daven\src\java\smartsoft\daven\BoxTest.java:
    package smartsoft.daven;
    
    import junit.framework.TestCase;
    
    public class BoxTest extends TestCase{
    
        public void test1(){
            Box b = new Box(2,2);
            assertEquals(4,b.getArea());
        }
    
    }
    
  3. Ejecuta de nuevo el goal java:jar, que indirectamente llama a los goals test:compile y test:test:
    maven java:jar
    

La salida de la consola deber�a parecerse a esto:

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:
    [javac] Compiling 1 source file to C:\daven\target\test-classes

test:test:
    [junit] dir attribute ignored if running same VM
    [junit] Running smartsoft.daven.BoxTest
    [junit] Tests run: 1, Failures: 0, Errors: 0
BUILD SUCCESSFUL
Total time:  10 seconds

Si alg�n test falla, puedes ver los informes generados en el directorio targets/test-reports.

.�El Repositorio de Maven Organiza los Ficheros Jar

La mayor�a de los proyectos utilizan librer�as de terceras partes en forma de ficheros Jar. El repositorio es un mecanismo espacial de Maven para organizar los ficheros Jar y otras dependencias que utilizan tus contrucciones. (Maven tambi�n utiliza el t�rmino artefacto para referirse a las dependencias). El repositorio esencialmente es una carpeta con un estructura espec�fica para Maven, y soluciona dos problemas. Primero, proporciona una localizaci�n centralizada para todos los ficheros Jar y otras dependencias que necesita tu proceso de construcci�n. Segundo, es un ayuda con los problemas de versiones proponiendo una convenci�n de nombrado. Abajo tienes la estructura de un repositorio Maven:

<USER_HOME>/repository
jdo
	jars
		kodo-1.1.jar
		kodo-1.2.jar
		jdoInterfaces-1.0.jar
filters
	jars
		jxFilter-1.0.jar
		jxFilter-1.1.jar

O, m�s generalmente:

<USER_HOME>/repository/groupId/type/artifactId-version.ext

As�, para kodo-1.1.jar, jdo es el groupId, jar es el type de dependencia, kodo es el artifactId, y 1.1 es la version. Estos elementos se representar�n en tu POM.

Maven soporta un repositorio local y un repositorio de red compartido. Primero chequea el repositorio local, y si no encuentra el fichero Jar, chequea el repositorio compartido. Maven almacena los ficheros Jar del directorio compartido en el directorio local.

.�Determinar la Dependencias de un Proyecto

La caracter�stica del repositorio de Maven est� muy relacionada con la forma en que maven trata las dependencias del proyecto. En Ant, tienes que crear un classpath para indicar los ficheros Jar de los que depende tu proyecto, mientras que Maven utiliza el elemento dependencies en el fichero project.xml para este prop�sito.

A�ade una dependencia de un fichero Jar a tu proyecto para ver como funcina esto. A�ade el siguiente bloque de c�digo al fichero project.xml, debajo del elemento currentVersion pero encima del elemento build:

...
<currentVersion>1.0</currentVersion>
<dependencies>
    <dependency>
        <groupId>jdo</groupId>
        <artifactId>kodo</artifactId>
        <version>2.5.2</version>
    </dependency>
</dependencies>
<build>
...

Para que esta etiqueta funcione, debe existir el siguiente fichero Jar:

<USER_HOME>/repository/jdo/jars/kodo-2.5.2.jar

Varios goals utilizan la etiqueta dependency. Por ejemplo, el goal compile la utiliza para generar el classpath, y el goal deploy la utiliza para determinar qu� fichero Jar copiar.

COMPARTE ESTE ARTÍCULO

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