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
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.
ertert
ResponderEliminar