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

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
ARTÍCULO ANTERIOR

¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.