Ejemplo del uso de MavenUso de maven tomando la aplicación Formul@ como ejemplo Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.odt Índice 1. OBJETO DE ESTE DOCUMENTO.............................................................................3 2. INSTALACIÓN.....................................................................................................3 3. CREACIÓN DEL PROYECTO...................................................................................4 4. ESTRUCTURA DEL PROYECTO MAVEN. MIGRACIÓN DE LOS CONtENIDOS..................7 5. DEFINICIÓN DE NUESTRAS DEPENDENCIAS.......................................................... 9 6. EMPAQUETAMIENTO DEL PROYECTO....................................................................16 7. PLUGINS DE MAVEN..........................................................................................16 8. OTRAS INFORMACIONES................................................................................... 18 9. GENERACIÓN DEL SITIO WEB............................................................................ 20 10. INFORMES PARA ANALIZAR LA CALIDAD............................................................24 11. FICHERO DESCRIPTOR PARA FORMULA. POM.XML...............................................25 1. OBJETO DE ESTE DOCUMENTO El objetivo de este documento es ilustrar el uso de maven con una aplicación java ya creada, la aplicación web Formul@. 2. INSTALACIÓN. Pasos para la instalación de maven 2 1) Desempaquetamos el archivo maven-2.0.x-bin.tar.gz que nos podemos bajar de la página de maven http://maven.apache.org/download.html en la ruta donde deseemos instalarlo. - tar zxvf maven-2.0.x-bin.tar.gz “o” - unzip maven-2.0.x.zip Tras esto se creará un directorio llamado "maven-2.0.x". 2) Añadir el directorio a el PATH: - export PATH=.:/home/prueba/maven-2.0.x /bin:$PATH - set PATH="c:\program files\maven-2.0.x\bin";%PATH% “o” Tipo de documento Ejemplo del uso de Maven Creado por: Últ. edición por: Javier Echeverría Usúa Revisión 1.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 2 Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.odt 3) Establece la variable JAVA_HOME a la carpeta del jdk. - export JAVA_HOME=/home/prueba/jdk1.5.0_09 4) Ejecuta "mvn –version". Si se ha instalado correctamente mostrara la versión de maven que estamos utilizando. Después de esto solo tendremos que usar el comando mvn desde la carpeta de nuestro proyecto que contendrá un fichero llamado por defecto “pom.xml”. 3. 4. CREACIÓN DEL PROYECTO Para crear el proyecto con estructura maven para Formul@ podemos hacerlo de dos formas. 1. Usando el mecanismo de arquetipos de maven: El plugin archetype de maven es toolkit para creación de platillas de proyectos. 2. Creando una carpeta con un pom.xml (que es el fichero que describe un proyecto en maven) vacío. Explicaremos el primer mecanismo, aunque este tiene mas utilidad cuand empezamos una aplicación desde cero. Un archetype es un plugin que indica a maven con que que tipo de estructura tiene que crear un proyecto. En función del tipo de proyecto que queramos crear existen varios archetype, que nos permiten por ejemplo crear proyectos para struts, spring, jsf, etc. Ejemplo del uso de Maven Creado por: Últ. edición por: Javier Echeverría Usúa Revisión 1.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 3 odt Una lista de archetypes disponibles se puede ver en esta url: http://docs.ibiblio. version indica la versión actual de la aplicación.maven. y que esta en el repositorio http://www.codehaus. mvn archetype:create -DgroupId=com.viavansi -DartifactId=formula -Dpackaging=war -DarchetypeGroupId=org.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 4 . groupId y packaging pero referidos al componente maven-archetype-webapp que es el archetype que vamos a usar.org/maven2 como se puede en la tabla anterior. similar al paquete de una clase. packaging indica el tipo de empaquetamiento que se usará con la aplicación. groupId es el grupo dentro del repositorio al que queremos que pertenezca nuestro componente.0 En esta instrucción aparecen un conjunto de elementos que se guardará en el pom. 3.0 -DarchetypeVersion=1. Y suele hacer referencia a la organización. archetypeArtifactId y archeytypeVersion tienen el mismo significado que artifactId. artifacId es el nombre que le ponemos a nuestra aplicacion o componente y el nombre que se usara cuando la metamos en el repositorio interno de maven. ya que es la primera vez que lo usamos.archetypes -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1. en este caso war. edición por: Javier Echeverría Usúa Revisión 1.xml del proyecto y que son típicos de cualquier componente que se encuentre instalado en un repositorio maven. Los elementos archetypeGroupId.org/display/MAVENUSER/Archetypes+List Usando la siguiente instrucción con el archetype maven-archetypewebapp crearemos nuestro primer proyecto para maven. 2. 4.apache. 1.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. Con esto solo necesitamos conexión a Internet para que maven se baje el plugin correspondiente al archetype maven-archetype-webapp. Con esto tendremos una carpeta con la siguiente estructura: Ejemplo del uso de Maven Creado por: Últ. org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.xsd"> <modelVersion>4.0</version> <name>formula Maven Webapp</name> <url>http://maven.odt 5.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.0" xmlns:xsi="http://www.8.0</modelVersion> <groupId>com.0 http://maven.apache.org/POM/4. 6. edición por: Javier Echeverría Usúa Revisión 1.xml inicial de nuestro proyecto es el siguiente: <project xmlns="http://maven. 7.0.1</version> <scope>test</scope> </dependency> </dependencies> Ejemplo del uso de Maven Creado por: Últ.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 5 .org/maven-v4_0_0. El pom.0.0.w3.apache.apache.viavansi</groupId> <artifactId>formula</artifactId> <packaging>war</packaging> <version>1.org/POM/4.apache. odt <build> <finalName>formula</finalName> </build> </project> El componente junit en su versión 3. ESTRUCTURA DEL PROYECTO MAVEN. Maven propone una estructura estándar de un proyecto: Ejemplo del uso de Maven Creado por: Últ.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 6 . 8. que es la forma en que se declara en maven todas los componentes software que necesita nuestro proyecto.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. edición por: Javier Echeverría Usúa Revisión 1. MIGRACIÓN DE LOS CONtENIDOS.1 nos lo añade automáticamete como una dependencia.8. En la siguiente tabla se puede ver que contiene cada carpeta.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. El proyecto se describe en su totalidad en el fichero pom. Es fundamental conocer que se coloca en cada una de las carpetas de un proyecto maven. src/main/resources Todo lo que queramos que se copie cuando se cree la carpeta del proyecto en target. proyectos Ejemplo del uso de Maven Creado por: Últ. el código de la aplicación Web.java.odt En función del archetype que usemos esta estructura de carpetas puede cambiar.xml.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 7 . Estas localizaciones también se pueden cambiar desde el pom. Por ejemplo las páginas y otros recursos como tags.xml se deben de encontrar en src/main/webapp. src/test/java Código fuente de las pruebas del proyecto.xml). applets y el fichero web. src/test/resources Recursos para las pruebas. El segundo paso tras crear el proyecto es migrar todos nuestros ficheros a la nueva estructura de proyecto que hemos creado. ficheros js. los recursos. src/main/java Ficheros de código fuente . En componen de varios subproyectos.xml pero no es necesario. applets. css. y el fichero web. src/main/filters * Ficheros para los filtros. src/main/webapp Páginas y otros recursos como tags. y existe una localización estándar para el código fuente. imágenes. src/main/config Ficheros de configuración. edición por: Javier Echeverría Usúa que se Revisión 1. src/main/assembly * Ficheros para el ensamblaje.xml (en webapp/WEB-INF/web. README. los ficheros . de las pruebas. Como habrán observado no existe una carpeta en un proyecto maven donde se coloquen las librerías.txt El fichero readme de introducción al proyecto En esta imagen se puede ver que hemos metido en cada carpeta de formula.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 8 . la carpeta con el sitio web generado. cuando empaquetemos el proyecto. Todo lo que hay bajo la carpeta site es para la generación del sitio web del proyecto que generaremos con maven al final del documento.java.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.txt Proyecto donde se describen las licencias usadas para el proyecto. src/test/filters * Filtros para las pruebas.war etc.odt src/main/java Ficheros de código fuente .jar . como las que una aplicación web java Ejemplo del uso de Maven Creado por: Últ. src/site Carpeta que contiene todos los ficheros necesarios para la generación automática del sitio web con la información del proyecto. target Es el directorio destino de todo build en maven. edición por: Javier Echeverría Usúa Revisión 1. todo se crea bajo la carpeta target. La generación del sitio se explicara más adelante. Vamos todo el código compilado el proyecto. LICENSE. xml que tenemos creado ya se encuentra definida una dependencia. La de la versión 3.8.xml los componentes software que nuestra aplicación necesita maven se encarga de su obtención de un repositorio local o remoto. Al añadir la dependencia tenemos que decir el ámbito <scope>.xml las dependencias de nuestro proyecto. 9. edición por: Javier Echeverría Usúa Revisión 1.1 de junit. La clave esta en el mecanismo que usa maven para gestionar las dependencias. DEFINICIÓN DE NUESTRAS DEPENDENCIAS.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. Maven tiene un potente mecanismo de gestión de dependencias.odt posee en la carpeta /WEB-INF/lib. actualizarlas. En el pom. Simplemente indicando en el pom. artifactId y versión que todos los proyectos en maven tienen. Estas pruebas podremos lanzadlas desde la linea de comandos y ver los resultados mvn test e incluso ver los resultados en el sitio web que maven genera con información del proyecto. Los más usados on compile que serán todas aquellas Ejemplo del uso de Maven Creado por: Últ. <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3. Una vez que hemos movido el contenido de nuestra aplicación a la nueva estructura de proyecto el siguiente paso será de finir en el pom. Como se ha podido ver antes un proyecto maven tienen una localización para las pruebas que se creen para el proyecto con junit.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 9 .8. y resolver las dependencias transitivas (osea las dependencias de las dependencias).1</version> <scope>test</scope> </dependency> </dependencies> Además de los campos groupId. Existen algunos sitios en internet que puden facilitarnos la tarea de descripción de las dependencias en el pom. por defecto en linux se encuentra en /home/usuario/.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. Primeramente en el repositorio local y si no los encuentra buscará en los repositorios que tiene por defecto configurados vía Internet (http://repo1. Tambien podemos usar la utilidad para añdir dependencias de alguno de los plugins de eclipse para maven: 1. Es muy probable sobre todo porque hablamos de proyectos que se han desarrollado sin usar maven.odt librerías/proyectos que nuestro proyecto necesita par compilar.com/ 2.javacio.maven. En principio si ya hemos definido todas nuestras dependencia podríamos compilar nuestro proyecto con un sencillo mvn compile.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 10 . http://m2eclipse. Así que iremos añadiendo un elemento <dependency> dentro del <dependencies> para cada librería de nuestro proyecto. empaquetar o instalar nuestro proyecto maven buscará las dependencias que le hemos indicado. Cuando intentemos compilar.us/ 3. edición por: Javier Echeverría Usúa Revisión 1. También se puede añadir una etiqueta en el pom. Todo lo que encuentre en los repositorios remotos maven se lo descargara y quedará cacheado en el repositorio local para hacer más rápidos próximos accesos a esas dependencias. http://www.org/ Ejemplo del uso de Maven Creado por: Últ.codehaus.org/maven2).m2/repository y se pude modificar en el fichero setting. El artifactId. groupId y la versión son la clave para que maven se pueda identificar la dependencia que ponemos no corresponde con los que tienen las librerías en los repositorios.xml.xml de forma que maven las encuentre en los repositorio remotos (sobre todo si son propias claro estas no las encontrara). los repositorios locales. y test como se ve en el ejemplo que indica que son librerías necesarias para ejecutar las pruebas. como veremos mas adelante. http://www.mvnrepository.xml: 1. y los repositorios remotos. que encontremos problemas a la hora de describir nuestras dependencias en el pom. En maven hay dos tipos de repositorios.xml para indicarle otros repositorios en los que buscar. juntadeandalucia.2/ Para usar esto repositorio remoto nuestro o algun otro de los existentes por einternet añadiremos nuestro pom. Para desplegarlo a un repositorio remoto podemos usar el goal de maven deploy:deploy-file o de forma mas sencilla usando la interface web de una aplicación que haga las funciones de repositorio remoto de maven. <repositories> <repository> <id>Viavansi</id> <name>viavansi-repo</name> <url>http://srvrepositorio.odt 2.0 -Dpackaging=jar 2.jfrog.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.com/p/q4e/ Si despues de exponer todas las dependencias en el pom. edición por: Javier Echeverría Usúa Revisión 1.google.es/repository/</url> </repository> <repository> <id>JuntaEnInternet</id> <name>viavansi-repo</name> <url>http://srvrepositorio. por ejemplo artifactory: http://www. Esto se puede hacer de difrentes formas: 1.xml las siguientes lineas donde se indican tres repositorios de donde buscar componentes./target/myjar 1.xml no conseguimos que maven compile y empaquete los fuentes bien por no encontrar dependencias (de terceros o propias) tendremos que desplegarlas en algun repositorio de librerias maven.junta-andalucia.cice -DartifactId=apiPropiaDeEjemplo -Dversion=1.jar -DgroupId=es.es/repository/</url> </repository> <!-.Para la entrega <repository> Ejemplo del uso de Maven Creado por: Últ.org/sites/artifactory/1.0.junta-andalucia. http://code.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 11 . Para instalar las dependenciasa en nustro repositorio local: mvn e install:installfile Dfile=. zones.0.junta-andalucia.es/repository/</url> </repository>--> <repository> <id>apache-repo</id> <name>apache-repo</name> <url>http://myfaces.apache.0.viavansi</groupId> <artifactId>viavansi-jsftools</artifactId> <version>1.viavansi</groupId> <artifactId>viavansi-framework</artifactId> <version>1.org/dist/maven-repository encontrara las librerías de myfaces y tomahawk.xml. que eran las librerías que esta aplicación tenia antes de empezar a crear el proyecto con maven.odt <id>Junta</id> <name>viavansi-repo</name> <url>http://srvrepositorio.apache. maven El proceso ha seguir después de poner los repositorios de los que tiraremos es ir añadiendo todas las dependencias al pom.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>com. edición por: Javier Echeverría Usúa Revisión 1.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 12 .0. Estas son las dependencias que tiene [email protected]/dist/maven-repository</url> </repository> </repositories> En http://myfaces.viavansi</groupId> Ejemplo del uso de Maven Creado por: Últ.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>com. <dependencies> <dependency> <groupId>com.zones.viavansi</groupId> <artifactId>viavansi-firma</artifactId> <version>1.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.myfaces.1.juntadeandalucia</groupId> <artifactId>trewa</artifactId> <version>1.core</groupId> <artifactId>myfaces-impl</artifactId> <version>1.apache.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 13 .juntadeandalucia</groupId> <artifactId>ApiFirmaCliente</artifactId> <version>4.core</groupId> <artifactId>myfaces-api</artifactId> <version>1.92-viavansi</version> <scope>compile</scope> </dependency> <dependency> <groupId>es.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>es.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.1.1.3. edición por: Javier Echeverría Usúa Revisión 1.8.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>es.myfaces.3</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.juntadeandalucia</groupId> <artifactId>clientepfirma</artifactId> <version>1.apache.3</version> Ejemplo del uso de Maven Creado por: Últ.odt <artifactId>fop</artifactId> <version>0. xml</groupId> <artifactId>jaxrpc-api</artifactId> <version>1.axis</groupId> <artifactId>axis</artifactId> <version>1.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>javax.myfaces.apache. edición por: Javier Echeverría Usúa Revisión 1.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.1.3</version> <scope>compile</scope> </dependency> <dependency> <groupId>javax.4</version> <scope>compile</scope> </dependency> <dependency> <groupId>xmlbeans</groupId> <artifactId>xbean</artifactId> <version>2.apache.tomahawk</groupId> <artifactId>tomahawk</artifactId> <version>1.odt <scope>compile</scope> </dependency> <dependency> <groupId>org.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.4</version> <scope>compile</scope> </dependency> <dependency> <groupId>batik</groupId> <artifactId>batik-extension</artifactId> <version>1.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 14 .1</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.1.6</version> <scope>compile</scope> </dependency> Ejemplo del uso de Maven Creado por: Últ. 3</version> <scope>compile</scope> </dependency> <dependency> <groupId>groovy</groupId> <artifactId>groovy-all</artifactId> <version>1.apache. edición por: Javier Echeverría Usúa Revisión 1.zones.0-jsr-04</version> <scope>compile</scope> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>1. Después podemos ver en /home/usuario/.1. Por ejemplo la librería de tomahawk irá a buscarla en el repositorio http://myfaces.2</version> <scope>compile</scope> </dependency> </dependencies> Después de poner todas las dependencias si ejecutamos mvn compile maven lo primero que hará será mirar si esas se encuentran en el repositorio local y si no los encuentra buscará en los otros que hemos definido.3.m2/repository/org/apache/myfaces las subcarpetas con la librería de tomahawk de la versión 1.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.odt <dependency> <groupId>jep</groupId> <artifactId>jep</artifactId> <version>2.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 15 .org/dist/maven-repository y creara la estructura necesaria en el local para la próxima vez.1.24</version> <scope>compile</scope> </dependency> <dependency> <groupId>dwr</groupId> <artifactId>dwr</artifactId> <version>1. Ejemplo del uso de Maven Creado por: Últ. jar que se encuentra en el repositorio viavansi-repo. 10.1.ejb o .xml. war. Si ejecutamos mvn package en la carpeta del proyecto nos creará en la carpeta . En el caso de Formul@ el empaquetamiento que necesitamos para luego desplegarlo es war como ya indicamos al crear el proyecto.odt El caso es igual para la librería viavansi-firma-1.1) o maven-ejb3-plugin (para la 3.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. edición por: Javier Echeverría Usúa Revisión 1.ejb para posteriormente desplegarlo indicaremos en la etiqueta <packaging> que el tipo de empaquetamiento es ejb (hasta la versión 2. EMPAQUETAMIENTO DEL PROYECTO.0.ejb3 correspondiente en la carpeta target del proyecto. ejb3) para los que maven tiene sus propios plugin. Par un empaquetamiento war o jar no necesitamos añadir nada más pero para los ejb necesitamos añadir al pom.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 16 . Estos tienen que ser lógicamente formatos standard (jar.0).war Ejemplo del uso de Maven Creado por: Últ. Un proyecto se empaqueta mediante el comando mvn package lo que crea un archivo con el tipo de empaquetamiento que pusimos en la etiqueta <packaging> del pom.xml la información de los plugins maven-ejb-plugin (si es hasta la 2. Si nuestro proyecto es en realidad un proyecto ejb donde solo tenemos la capa de negocio (enterprise beans de sesión) y necesitamos empaquetarlo como .1) o ejb3 y al ejecutar mvn package se creara el archivo ./target/formula. Subversion). La notación para usar estos goals es plugin:goal pero muchas veces se puede omitir el goal y llamando con el plugin ya maven sabe cual es el goal por defecto a ejecutar. Archetype. edición por: Javier Echeverría Usúa Revisión 1. Site etc. Plugins destacables son: Compiler.xml. Deploy. Para ilustrar el ejemplo podemos ver como se indica que vamos a usar el plugin SCM que usa maven para comunicarse con sistemas de control de versiones (CVS.xml. Install. PLUGINS DE MAVEN Maven dispone de una gran cantidad de plugins. Muchos de estos plugins se pueden usar sin tener que indicarlos en el pom.0-beta-3</version> </plugin> </plugins> <build> Ejemplo del uso de Maven Creado por: Últ. Otros hay que especificarlos para poder usarlos. SCM.plugins</groupId> <artifactId>maven-scm-plugin</artifactId> <version>1. 11. Son los que pertenecen al núcleo de maven.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 17 .maven.apache.odt En el punto 7 explicaremos como se configuran los plugin. <build> <finalName>myapp</finalName> <plugins> <plugin> <groupId>org. Además podemos cambiar la configuración de los plugin añadiéndolos al pom.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. Cada uno de los comando anteriormente usados son lo que en maven se definen como 'goals' y pertenecen a ciertos plugins. xml. <plugin> <groupId>org.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 18 .0/formula </connection> <developerConnection> scm:svn:http://RepositorioDeEntrega/repos/formula/tags/1. para lo que se usa el fichero site. Ejemplo del uso de Maven Creado por: Últ. Este tema se trata más en profundidad en el documento 'Informe Sobre el uso de Maven'.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <configuration> <locales>es_ES</locales> </configuration> </plugin> El plugin Site es el que usaremos para que maven cree automáticamente un portal web con la información del proyecto. No entraremos en este documento a explicar la configuración y diseño de este portal.UN SUBVERSION CON APACHE --> <connection> scm:svn:http://RepositorioDeEntrega/repos/formula/tags/1.0. edición por: Javier Echeverría Usúa Revisión 1.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. Con el comando mvn site se creará una carpeta targe/site con todos los html y recursos del sitio.odt Esto nos daría la posibilidad e ejecutar los goals del plugin scm de maven para trabajar con un repositorio que también se le indicaría en el pom.0.xml: <scm> <!-.apache.0/formula </developerConnection> <scm> Otro ejemplo sería el del plugin Site que se usa para generar el portal maven para el proyecto. OTRAS INFORMACIONES En el pom.cma.com</email> <roles> <role>Jefe de proyectos</role> <role>Analista</role> </roles> <organization>Viavansi</organization> <timezone>+1</timezone> </developer> Ejemplo del uso de Maven Creado por: Últ. <developers> <developer> <id>jechaverria</id> <name>Javier Echeverria Usua</name> <email>jecheverria@avansi. Junta de Andalucía</name> <url>http://www.php? forum_id=30287 </archive> </mailingList> </mailingLists> ej3: Desarrolladores.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 19 . ej1: Organización <organization> <name>Consejeria de Medio Ambiente. los desarrolladores.es/medioambiente/site/web/</url> </organization> ej2: Lista de distribución de corréo de Spring. contribuciones etc.net/mailarchive/forum.odt 12. listad de distribución que se usen para el proyecto. edición por: Javier Echeverría Usúa Revisión 1.xml podemos añadir otras informaciones que pueden ser interesantes como la organización.juntaandalucia. <mailingLists> <mailingList> <name>Spring User List</name> <archive>http://sourceforge. En maven se pueden generar un sitio web para nuestro proyecto simplemente ejecutando el goal site ej. que comienza con la carpeta . GENERACIÓN DEL SITIO WEB Uno de los puntos más interesantes de maven es la generación de sitios web con documentación para los proyectos.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 20 . para generar el sitio web también hay que respetar una estructura de carpetas predefinidas.Para configurar la sección de contributors --> <contributor> <name>XXX XXX XXX</name> </contributor> </contributors> 13. Previamente tenemos que saber que al igual que para trabajar con el código del proyecto o de las pruebas. Dentro de esta carpeta encontraremos un fichero site./src/site/.xml se usará para Ejemplo del uso de Maven Creado por: Últ. edición por: Javier Echeverría Usúa Revisión 1.xml que junto con la información del pom.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. mvn site.odt </developers> ej4: Contribuciones <contributors> <!-. Estos ficheros son traducidos automáticamente por maven a páginas html.html site/fml Esta carpeta contiene ficheros de formato FAQ. y que no necesitan ningún otro tratamiento. Usaremos este sistema para crear una página propia dentro del sitio web que acceda a documentos guardados en Alfresco junto con las que genera maven.xml que define la estructura del portal site/apt Esta carpeta contiene ficheros con formato apt que ses un formato tipo wiki para escribir documentos de texto estructurados de forma simple.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. scripts. Por ejemplo las css.apache. site/resources Aquí se guardan todos los recursos que queremos que se copien al sitio web cuando se genere. edición por: Javier Echeverría Usúa Revisión 1. En la siguiente imagen se puede ver los ficheros y carpetas que hemos creado para nuestro sitio web: Ejemplo del uso de Maven Creado por: Últ. etc. site/xdoc Esta carpeta contiene ficheros xml.odt generar el sitio. La referencia a este formato la podemos encontrar en esta url: http://maven.org/guides/mini/guide-apt-format./src/site/ se encuentran otras carpetas que separan según el tipo los elementos que se usaran para la generación del maven y que recibirán un tratamiento distinto. La estructura de directorios que debemos tener con los ficheros para generar nuestro sitio web es la siguiente: site Contiene el site. imágenes.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 21 . Un formato xml simple para gestión de FAQs. Además de este fichero dentro de . 0.gif</src> <href>http://www. edición por: Javier Echeverría Usúa Revisión 1.0" encoding="UTF-8"?> <project name="F@rmula"> <publishDate position="navigation-bottom" format="dd_MM_yyyy"/> <bannerLeft> <name>[email protected] del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.juntadeandalucia.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 22 .viavansi.html"/> <item name="Documentación" href="documentacion. Consejería de Medio Ambiente</name> <src>/images/cab_formula.xml” <?xml version="1.odt Empezaremos dando un vistazo al site.juntadeandalucia.html"/> <item name="Análisis" href="analisis.html"/> </menu> <menu name="Informes" ref="reports" /> </body> </project> Ejemplo del uso de Maven Creado por: Últ.es/repositorio"/> <item name="Maven" href="http://maven.org/"/> </links> <menu name="F@rmula v1.com/</href> </bannerRight> <body> <links> <item name="Desarrollado por viavansi" href="http://www.gif</src> <href>http://www.0"> <item name="Introducción" href="index.com" /> <item name="Repositorio Junta de Andalucia" href="http://www.es/repositorio</href> </bannerLeft> <bannerRight> <src>/images/logoviavansi.xml que hemos usado para formul@: “site. La aplicación principal se divide en 2 bloques principales: * Una parte pública: conforma la parte pública de la aplicación a la cuál tienen acceso los solicitantes de las tramitaciones telemática.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. edición por: Javier Echeverría Usúa Revisión 1.odt Los ficheros . Aquí se puede ver el contenido del index.apt (almost plain text) son un formato de texto sencillo en el que se pueden definir páginas de forma sencilla. * Una parte de administración accesible solo por el personal autorizado de la Consejería de Medio Ambiente y destinada la gestión y administración de los procedimientos telemáticos. Maven se encarga de interpretar estos ficheros y traducirlos a xdocs. Al ejecutar mvn site nos genera una carpeta con el sitio web completo bajo la ruta target/site la cual podemos ver en la siguiente imagen.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 23 . -----Introducción -----Viavansi -----Date Plataforma de tramitación interna para la Consejería de Medio Ambiente de la Junta de Andalucía La aplicación formul@ es un tramitador telemático diseñado para la Consejería de Medio Ambiente de la Junta de Andalucía.apt. Ejemplo del uso de Maven Creado por: Últ. Ejemplo del uso de Maven Creado por: Últ.odt Para tocar los estilos hemos añadido en la carpeta src/site/resources/css/ el fichero site. Este fichero contiene con los estilos que previamente cogimos de la css por defecto que usa el plugin site y luego le tocamos los colores. apt del sitio porque el ficheor site. No hace falta tocar las páginas y fichero xdoc. 14. edición por: Javier Echeverría Usúa Revisión 1.css.css es uno de los que son añadidos siempre al generar las páginas como hoja de estilo en todas las páginas.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 24 . INFORMES PARA ANALIZAR LA CALIDAD. edición por: Javier Echeverría Usúa Revisión 1.). Test De Cobertura: informe sobre que parte del código esta cubierto por las pruebas de junit.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 25 . Surefire: Resultado de las pruebas de junit.xml y una sección nueva <reporting>.xml completo. Source xref: informe html de las referencias entre el código Java.. CPD: Detección de código duplicado. Ejemplo del uso de Maven Creado por: Últ.. Para ver ya el proyecto completo con sus plugins y el resto de información mejor nos vamos ya a la sección siguiente con el pom.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. Javadoc: Javadoc de la aplicación. (por ej: FIXME.odt En Maven existen varios plugins que se pueden añadir para analizar la calidad del software como son: Checkstyle: Informe sobre el estilo del código. TODO etc. Tag list: informe de varias etiquetas encontradas en el código. Para añadir estos informes al sitio web lo único que hay que hacer es añadir los plugins necesarios al pom. PMD: Verificación de reglas en el código. XML <?xml version="1.0</version> <url>http://maven.org</url> <developers> <developer> <id>borrego</id> <name>Felix G.0"?><project> <modelVersion>4.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.com</email> <roles> <role>Jefe de proyectos</role> <role>Analista</role> </roles> <organization>Viavansi</organization> <timezone>+1</timezone> </developer> <developer> <id>jorge</id> <name>Jorge Torres Chacon</name> <email>jtorres@avansi. FICHERO DESCRIPTOR PARA FORMULA.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 26 . POM.apache. Borrego</name> <email>[email protected]</email> <roles> <role>Desarrollador</role> <role>Analista</role> Ejemplo del uso de Maven Creado por: Últ.odt 15.0. edición por: Javier Echeverría Usúa Revisión 1.0</modelVersion> <groupId>com.viavansi</groupId> <artifactId>formula</artifactId> <packaging>war</packaging> <name>Formula</name> <version>1.com</email> <roles> <role>Arquitecto</role> <role>Desarrollador</role> <role>Analista</role> </roles> <organization>Viavansi</organization> <timezone>+1</timezone> </developer> <developer> <id>jechaverria</id> <name>Javier Echeverria Usua</name> <email>jecheverria@avansi. com</email> <roles> <role>Analista</role> </roles> <organization>Viavansi</organization> <timezone>+1</timezone> </developer> </developers> <organization> <name>Consejeria de Medio Ambiente.junta-andalucia.0. Junta de Andalucía</name> <url>http://www.0/f ormula</developerConnection> </scm> <distributionManagement> <site> <id>deployEnLocal</id> <name>deployEnLocal</name> Ejemplo del uso de Maven Creado por: Últ.0.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 27 .Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708. edición por: Javier Echeverría Usúa Revisión 1.0/formula</c onnection> <developerConnection>scm:svn:http://RepositorioDeEntrega/repos/formula/tags/1.cma.es/medioambiente/site/web/</url> </organization> <scm> <connection>scm:svn:http://RepositorioDeEntrega/repos/formula/tags/1.com</email> <roles> <role>Desarrollador</role> <role>Analista</role> </roles> <organization>Viavansi</organization> <timezone>+1</timezone> </developer> <developer> <id>mnavarro</id> <name>Manuel Navarro Almuedo</name> <email>[email protected] </roles> <organization>Viavansi</organization> <timezone>+1</timezone> </developer> <developer> <id>lcruz</id> <name>Luis Migel Cruz Renero</name> <email>lcruz@avansi. apache. edición por: Javier Echeverría Usúa Revisión 1.4</target> </configuration> </plugin> <plugin> <groupId>org.2</version> <configuration> <wtpversion>1.war</url> </site> </distributionManagement> <build> <finalName>formula</finalName> <plugins> <plugin> <groupId>org.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.0-beta-3</version> <configuration> <goals>install</goals> <checkoutDirectory>${basedir}/src</checkoutDirectory> </configuration> Ejemplo del uso de Maven Creado por: Últ.mojo</groupId> <artifactId>xmlbeans-maven-plugin</artifactId> <executions> <execution> <goals> <goal>xmlbeans</goal> </goals> </execution> </executions> <inherited>true</inherited> <configuration> <schemaDirectory>src/main/xsd</schemaDirectory> </configuration> </plugin> <plugin> <artifactId>maven-eclipse-plugin</artifactId> <version>2.4</source> <target>1.plugins</groupId> <artifactId>maven-scm-plugin</artifactId> <version>1.maven.0</wtpversion> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.odt <url>file:///home/felipe/alfresco/tomcat/webapps/formula_v2.codehaus.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 28 . mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> <executions> <execution> <id>clean</id> <goals> <goal>clean</goal> </goals> </execution> </executions> </plugin> <!--<plugin> <groupId>org.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <configuration> <locales>es_ES</locales> <inputLocales>es_ES</inputLocales> <outputLocales>es_ES</outputLocales> <inputEncoding>ISO-8859-1</inputEncoding> <outputEncoding>ISO-8859-1</outputEncoding> <encoding>ISO-8859-1</encoding> </configuration> </plugin> <plugin> <groupId>org.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <source>1.0-beta-3</version> <configuration> <goals>install</goals> <checkoutDirectory>${basedir}/src</checkoutDirectory> </configuration> </plugin> <plugin> <groupId>org.plugins</groupId> <artifactId>maven-scm-plugin</artifactId> <version>1. edición por: Javier Echeverría Usúa Revisión 1.apache.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.maven.maven.apache.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 29 .codehaus.4</target> </configuration> </plugin>--> <plugin> <groupId>org.plugins</groupId> Ejemplo del uso de Maven Creado por: Últ.odt </plugin> <plugin> <groupId>org.apache.maven.apache.maven.4</source> <target>1. 1</version> <scope>compile</scope> Ejemplo del uso de Maven Creado por: Últ.apache.odt <artifactId>maven-site-plugin</artifactId> <configuration> <locales>es_ES</locales> </configuration> </plugin> <plugin> <groupId>org.org/dist/maven-repository</url> </repository> </repositories> <dependencies> <dependency> <groupId>com.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> <executions> <execution> <id>clean</id> <goals> <goal>clean</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <repositories> <repository> <id>viavansi-repo</id> <name>viavansi-repo</name> <url>file:///home/felipe/Proyectos/formula_v2/repositorio</url> </repository> <repository> <id>default</id> <name>default</name> <url>file:///home/felipe/.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 30 .zones.m2/repository</url> </repository> <repository> <id>apache-repo</id> <name>apache-repo</name> <url>http://myfaces.codehaus. edición por: Javier Echeverría Usúa Revisión 1.0.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.viavansi</groupId> <artifactId>viavansi-framework</artifactId> <version>1. 1</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.viavansi</groupId> <artifactId>fop</artifactId> <version>0.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>es.juntadeandalucia</groupId> <artifactId>trewa</artifactId> <version>1.0.juntadeandalucia</groupId> <artifactId>ApiFirmaCliente</artifactId> <version>4.viavansi</groupId> <artifactId>viavansi-firma</artifactId> <version>1.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.juntadeandalucia</groupId> <artifactId>clientepfirma</artifactId> <version>1.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 31 .1</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>es.odt </dependency> <dependency> <groupId>com.3.1</version> <scope>compile</scope> </dependency> Ejemplo del uso de Maven Creado por: Últ.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.viavansi</groupId> <artifactId>viavansi-jsftools</artifactId> <version>1.0. edición por: Javier Echeverría Usúa Revisión 1.1.92-viavansi</version> <scope>compile</scope> </dependency> <dependency> <groupId>es.8. axis</groupId> <artifactId>axis</artifactId> <version>1.odt <dependency> <groupId>org.1. edición por: Javier Echeverría Usúa Revisión 1.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 32 .apache.1.4</version> <scope>compile</scope> </dependency> <dependency> <groupId>batik</groupId> Ejemplo del uso de Maven Creado por: Últ.tomahawk</groupId> <artifactId>tomahawk</artifactId> <version>1.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.3</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.myfaces.3</version> <scope>compile</scope> </dependency> <dependency> <groupId>javax.1.3</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.core</groupId> <artifactId>myfaces-api</artifactId> <version>1.apache.xml</groupId> <artifactId>jaxrpc-api</artifactId> <version>1.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>javax.1.core</groupId> <artifactId>myfaces-impl</artifactId> <version>1.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.myfaces.myfaces.4</version> <scope>compile</scope> </dependency> <dependency> <groupId>xmlbeans</groupId> <artifactId>xbean</artifactId> <version>2.apache.apache. 6</version> <scope>compile</scope> </dependency> <dependency> <groupId>jep</groupId> <artifactId>jep</artifactId> <version>2.apache.24</version> <scope>compile</scope> </dependency> <dependency> <groupId>dwr</groupId> <artifactId>dwr</artifactId> <version>1.odt <artifactId>batik-extension</artifactId> <version>1.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.apache.0-jsr-04</version> <scope>compile</scope> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>1.maven.2</version> <scope>compile</scope> </dependency> </dependencies> <reporting> <plugins> <plugin> <groupId>org.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 33 .5</target> </configuration> </plugin> <plugin> Ejemplo del uso de Maven Creado por: Últ.5</source> <target>1.1.maven. edición por: Javier Echeverría Usúa Revisión 1.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> </plugin> <plugin> <groupId>org.3</version> <scope>compile</scope> </dependency> <dependency> <groupId>groovy</groupId> <artifactId>groovy-all</artifactId> <version>1.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1. plugins</groupId> <artifactId>maven-site-plugin</artifactId> </plugin> <plugin> <groupId>org.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> </plugin> <plugin> <groupId>org.odt <groupId>org.codehaus.4</target> </configuration> </plugin>--> <plugin> <groupId>org.maven.apache.maven.apache.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 34 .plugins</groupId> <artifactId>maven-jxr-plugin</artifactId> </plugin> <!-<plugin> <groupId>org.maven.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.maven.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> </plugin> <plugin> <groupId>org. edición por: Javier Echeverría Usúa Revisión 1.apache.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <configuration> <configLocation>config/maven_checks.mojo</groupId> <artifactId>taglist-maven-plugin</artifactId> <configuration> <tags> <tag>TODO</tag> <tag>@todo</tag> <tag>FIXME</tag> <tag>@fixme</tag> <tag>todo</tag> <tag>@TODO</tag> <tag>fixme</tag> <tag>@FIXME</tag> Ejemplo del uso de Maven Creado por: Últ.apache.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <source>1.apache.apache.xml</configLocation> </configuration> </plugin> <plugin> <groupId>org.maven.4</source> <target>1. odt </tags> </configuration> </plugin> <plugin> <groupId>org.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> </plugin> </plugins> </reporting> </project> Ejemplo del uso de Maven Creado por: Últ.0 Fecha creación: Fecha última edición: 18/01/2007 08:21 22/01/2006 08:01 Página 35 .codehaus. edición por: Javier Echeverría Usúa Revisión 1.Ejemplo del uso de Maven Uso de maven tomando la aplicación Formul@ como ejemplo 266752708.