martes, 12 de julio de 2011

Primer hola mundo maven

Voy a explicar como crear un proyecto con maven, ver los distintas plantillas que tiene maven para crear proyectos. Abrinos una consola de linux en colocamos en la carpeta que queremos tener nuestro proyecto java, despues ejecutamos el siguiente comando para ver todas la plantillas que tiene maven:

mvn archetype:generate

Esto lo que produce sera un listado de plantillas que tiene maven, por defecto siempre te da el número para crear un proyecto 'maven-archetype-quickstart' en este caso elegimos esta opcion y rellenamos los datos que no piden:
  • groudId : xabe
  • artifactId: holaMundo
  • version: 1.0
  • package: com.xabe
Una vez rellenos los datos no pedira que confirmemos decimos que 'yes' y no crea un carpeta con el valor relleno en artifactId, ahora hacemos nos movemos a la carpeta holaMundo y tenemos la siguiente estructura:

holaMundo
     |_pom.xml
     |_src
            |_main
            |     |_java
            |           |_com
            |                 |_xabe
            |                      |_App.java
            |_test
                  |_java
                        |_com
                              |_xabe
                                   |_AppTest.java

Abrimos el fichero App.java con nuestro editor favorito cambios el Hello World por hola mundo. Una vez realizado el cambio volvemos a la consola ejecutamos el comando:

mvn clean package

 Esto no va crear un carpeta en target donde se va encontrar el jar generado con el siguiente ${artifactId}-{version}.jar en este caso holaMundo-1.0.jar, para ejecutar el el jar invocamos el siguiente comando:

java -classpath holaMundo-1.0.jar com.xabe.App

veremos por pantalla

Hola Mundo

Para poder ejecutar el jar sin indicar  la clase tenemos que modificar el pom.xml para que cuando genere el jar en el Manifest añade el atributo Main-Class añadimos lo siguiente:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.3.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>com.xabe.App</mainClass>
                        </manifest>
                        <manifestEntries>
                            <mode>development</mode>
                            <url>${project.url}</url>
                            <key>value</key>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>

Cuando ejecutamos otra el vez el comando para generar el jar:

mvn clean package

Y nos vamos a la carpeta target, ejecutamos 

java -jar holaMundo-1.0.jar

Obtenemos el mismo resultado.

1 comentario: