¿Te gustaría aprender Frameworks Java Empresariales?
Tenemos los cursos que necesitas.¡Haz clic aquí!

 

Arborescencia del proyecto

He aquí la arquitectura del proyecto como la generada con «maven-archetype-quickstart» y los valores de la configuración pasada en modo interactivo:

helloworld
| pom.xml
| src
| | main
| | | java
| | | | org
| | | | | ccm
| | | | | | maven
| | | | | | | App.java
| | test
| | | java
| | | | org
| | | | | ccm
| | | | | | maven
| | | | | | | AppTest.java

Tenemos 12 carpetas y 3 archivos, cuyo detalle:

helloworld/src/main/java/org/ccm/maven/App.java:

package org.ccm.maven;

/××
 × Hello world!
 ×/
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

Nada complicado hasta aquí, Maven nos completó fácilmente el código de un clásico Hello World.

helloworld/src/main/java/org/ccm/maven/App.java:

package org.ccm.maven;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

/××
 × Unit test for simple App.
 ×/
public class AppTest 
    extends TestCase
{
    /××
     × Create the test case
     ×
     × @param testName name of the test case
     ×/
    public AppTest( String testName )
    {
        super( testName );
    }

    /××
     × @return the suite of tests being tested
     ×/
    public static Test suite()
    {
        return new TestSuite( AppTest.class );
    }

    /××
     × Rigourous Test :-)
     ×/
    public void testApp()
    {
        assertTrue( true );
    }
}

Aquí es un poco más complicado si no conoces a JUnit, se trata de una clase de prueba unitaria, esto permite hacer automáticamente algunas comprobaciones después de cada compilación para asegurarse que las modificaciones aportadas al código no perturban lo que ya funcionaba.

Observación: la prueba verifica simplemente que true vale true, lo que es evidentemente correcto.

Finalmente, he aquí el corazón de Maven, que contiene toda la configuración del proyecto:

helloworld/pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.ccm.maven</groupId>
  <artifactId>helloworld</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>helloworld</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

Encontramos particularmente los diferentes valores que configuramos, así como las dependencias en JUnit para permitir hacer las pruebas. Configurando esta dependencia en el pom, Maven sabe que deberá ir a descargar la biblioteca de JUnit y a asociarlo al proyecto con el fin de que funcione. No tienes que instalarlo.

También podemos ver la etiqueta de packaging, que es un jar. Esto significa que después de compilación el código será archivado en un archivo JAR.

Sin embargo, falta una pequeña cosa, en efecto este jar no es ejecutable. Por lo tanto, vamos a añadir el punto de entrada copiando este bloque en el pom.xml (por ejemplo entre el url y las propiedades).

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>org.ccm.maven.App</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>

 

Compilación y ejecución del programa

Ahora que nuestro código fuente está completo y que la configuración del proyecto está terminada, vamos a poder pedirle a Maven construir el proyecto. Para esto abre una interfaz de línea de comandos en la carpeta «helloworld» y entra este comando:

mvn package

Esto va a provocar diferentes acciones, como la validación del proyecto (que va particularmente a descargar todos los archivos que podrían faltar), la compilación del proyecto, la ejecución de las pruebas unitarias y la creación de los archivos jar.

Nota: si una de estas etapas es suspendida, entonces las siguientes no serán ejecutadas.

Una nueva carpeta apareció en su directorio helloworld, se trata de «target», ésta contiene las clases compiladas (en «classes» para el programa y «test-classes» para las pruebas unitarias), los informes de tests («surefire-reports»), así como el archivo «helloworld-1.0-SNAPSHOT.jar» y propiedades de compilación (en «maven-archiver»).

Puedes ahora lanzar el programa el comando:

java -jar target/helloworld-1.0-SNAPSHOT.jar

El resultado será como el previsto: Hello World!

Información adicional

  • La descripción del proyecto mediante el archivo «pom.xml» permite particularmente librarse de la instalación de las dependencias. Si quieres transferir tu proyecto de una máquina a otra, hay que sólo copiar las fuentes del proyecto. La regeneración del proyecto se hará entonces de manera idéntica sin problema de configuración.
  • Una vez que la compilación y el packaging haya terminado, Maven puede desplegar la aplicación directamente en el servidor y hacer pruebas de integridad con el fin de verificar que cohabita bien con otras aplicaciones de su entorno.
  • Maven es soportado por Eclipse y Netbeans, por lo tanto podrás ingresar a la interfaz de comandos y encontrar las funcionalidades de Maven directamente en tu IDE preferido.
  • «Ant» es un proyecto similar a Maven. Pueden encontrarse a veces asociados.
Te esperamos en los siguientes artículos en donde hablaremos mas acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.
¿Te gustaría aprender Frameworks Java Empresariales?
Tenemos los cursos que necesitas.¡Haz clic aquí!
About Author

NGuerrero

0 0 votos
Article Rating
Suscribir
Notificar de
guest
0 Comments
Comentarios.
Ver todos los comentarios
0
¿Te gusta este articulo? por favor comentax