¿Qué es Maven?
Maven es una herramienta de gestión y comprensión de proyectos. Maven ofrece a los desarrolladores un marco de trabajo para construir todas las etapas del ciclo de vida de una aplicación. El equipo de desarrollo puede automatizar la infraestructura necesaria para la creación de proyectos en poco tiempo. Maven utiliza un esquema de directorio estándar y una construcción de etapas clásicas de ciclo de vida de un proyecto.
En el caso en el que el desarrollo de un proyecto, sea realizado por varios equipos de desarrollo, Maven puede configurar la forma de trabajar basándose en estándares en muy poco tiempo. Como la mayoría de las configuraciones de proyecto son simples y reutilizable, Maven facilita la vida a los desarrolladores proporcionando de forma automática: la creación de informes, validaciones, compilación y pruebas de configuraciones de forma automatización. Maven facilita el trabajo de los desarrolladores maneras de administrar siguientes:
Maven permite gestionar:
• Compilaciones • Creación de documentación • Creación de informes • Resolución de dependencias • Releases • Distribuciones • Listas de correo
En conclusión, Maven simplifica y estandariza el proceso de creación de proyectos. Gestiona la compilación, distribución, documentación colaboración en grupo y tareas similares. Maven incrementa la reutilización y se encarga de la mayor parte de las tareas relacionadas con las tareas de compilación. Historia de Maven
Maven fue creado con el fin de simplificar el proceso de compilación den el proyecto Turbine de Jakarta. Había varios proyectos y cada uno de ellos contenía ficheros de construcción de ANT muy parecidos. A partir de este hecho, el grupo Apache desarrollo Maven, el cual es capaz de construir proyectos, publicar información acerca de los mismos, desplegar proyectos, compartir JARs y ayudar en la colaboración entre grupos de desarrollo. Objetivo de Maven
El objetivo primario de maven es proporcionar a los desarrolladores:
• Un modelo comprensible para: la creación de proyectos y el mantenimiento de proyectos. • Plugins y tools que interactúan con este modelo declarativo.
1
La estructura y contenido de un proyecto Maven se define en un fichero nombrado pom.xml. Este fichero se llama POM (Project Object Model). El POM es la piedra angular de MAVEN. Convención sobre configuración.
Maven utiliza Convención sobre configuración, lo que significa que los desarrolladores no tienen que crear el proceso de creación de ellos mismos. Los desarrolladores no tienen que mencionar todos y cada uno de los detalles de configuración. Maven proporciona un comportamiento para proyectos. Cuando se crea un proyecto Maven, Maven crea la estructura del proyecto de forma predeterminada. El desarrollador sólo debe colocar los ficheros en la forma apropiada y no necesitamos definir ninguna configuración en el fichero pom.xml.
Por ejemplo, la siguiente tabla muestra los valores por defecto para los archivos de código fuente de un proyecto, archivos de recursos y otras configuraciones. Asumiendo que la variable ${basedir} indica la ubicación del proyecto:
Item Valor por defecto Código fuente ${basedir}/src/main/java Recursos ${basedir}/src/main/resources Ficheros con las pruebas ${basedir}/target/classes Compiled byte code ${basedir}/src/test JAR para la distribución ${basedir}/target
Para crear el proyecto, Maven proporciona a los desarrolladores opciones para seleccionar el ciclo de vida objetivo (goal) y dependencias de proyectos (esto depende de las capacidades de los plugins y en sus convenciones por defecto). La mayor parte de la gestión de proyectos, construcción de los mismos y tareas relacionadas es llevada a cabo por los plug-ins de Maven.
Los desarrolladores pueden crear proyectos Maven sin necesidad de conocer cómo funcionan los plugins. Sin embargo para poder adaptarlos a necesidades concretas es necesario saber cómo configurarlos. En la sección Plugins de Maven se dan los detalles para su configuración.
2
Maven Environment Setup
Maven se basa en, así que el primer requisito es tener instalado el kit de desarrollo de Java (SDK) System Requirement
JDK 1.5 o superior. Memory Sin requisito mínimo. Disk Space Sin requisito mínimo. Operating System Sin requisito.
1º Paso. Verificar la instalación de JAVA en su ordenador
Abrir un terminal (cmd.exe) y ejecutar el siguiente comando de acuerdo al S.O. que esté instalado:
Sistema Tarea Comando Operativo Windows Abrir un terminal (cmd.exe) c:\> java -version Linux Abrir un terminal $ java -version Mac Abrir terminal $ java -version
El resultado de la ejecución debe ser algo similar a lo siguiente:
Sistema Salida Operativo Windows java version "1.7.0_07" Java(TM) SE Runtime Environment (build 1.7.0_07-b10) Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode) Linux java version "1.7.0_07" Java(TM) SE Runtime Environment (build 1.7.0_07-b10) Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode) Mac java version "1.7.0_07" Java(TM) SE Runtime Environment (build 1.7.0_07-b10) Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
En caso de que no esté instalado Java, debe proceder a su instalación para ello basta con descargar install the Java Software Development Kit (SDK) from http://www.oracle.com/technetwork/java/javase/downloads/index.html. Se recomienda instalar Java SE 7u9
3
2º Paso: Configurar el entorno JAVA
Se debe crear la variable de entorno JAVA_HOME y hacer que su valor sea igual a la ruta en donde instalo el SDK.
Sistema Operativo Salida Windows JAVA_HOME = C:\Program Files\Java\jdk1.7.0_07 Linux export JAVA_HOME=/usr/local/java-current Mac export JAVA_HOME=/Library/Java/Home
Añadir la ubicación del compilador de Java al Path del sistema.
Sistema Operativo Salida Windows Agregar, a la variable de sistema PATH, la cadena ;C:\Program Files\Java\jdk1.7.0_07\bin Linux export PATH=$PATH:$JAVA_HOME/bin/ Mac No se debe hacer nada
3º Paso: Descargar Maven
Descargar la versión 2.2.1 from http://maven.apache.org/download.html
Sistema Nombre del fichero Operativo Windows apache-maven-2.0.11-bin.zip Linux apache-maven-2.0.11-bin.tar.gz Mac apache-maven-2.0.11-bin.tar.gz
4º Paso: Extraer los ficheros de Maven
Descomprima el fichero “apache-maven-2.2.1-bin.zip” en su ordenador (Para Windows se sugiere la ruta: c:\soft). Una vez descomprimido, debe tener el subdirectorio con Maven
Sistema Ubicación (depende del S.O.) Operativo Windows C:\soft\apache-maven-2.2.1 Linux /usr/local/apache-maven Mac /usr/local/apache-maven
4
5º Paso: Establecer las variables de entorno de Maven
Se deben agregar las variables de entorno M2_HOME, M2, MAVEN_OPTS
S.O. Salida Windows M2_HOME=C:\soft\apache-maven-2.2.1
M2=%M2_HOME%\bin
MAVEN_OPTS=-Xms256m -Xmx512m Linux export M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1
export M2=%M2_HOME%\bin
export MAVEN_OPTS=-Xms256m -Xmx512m Mac Open command terminal and set environment variables.
export M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1
export M2=%M2_HOME%\bin
export MAVEN_OPTS=-Xms256m -Xmx512m
6º Paso: Añada la ubicación del directorio bin al Path del sistema
S.O. Salida Windows Agregar, a la variable de sistema PATH, la cadena: ;%M2%. Linux export PATH=$M2:$PATH Mac export PATH=$M2:$PATH
8º Paso 8: Verificar la instalación de Maven
Abrir una terminal y ejecutar el comando mvn siguiente.
S.O. Tarea Comando Windows Abrir una consola: c:\> mvn --version Linux Abrir un Terminal: $ mvn --version Mac Abrir un Terminal machine:~ joseph$ mvn --version
Finalmente, verifique que en la terminal de comandos, aparece algo como lo siguiente:
5
S.O. Salida Windows Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200) Java version: 1.7.0_07 Java home: C:\soft\jdk1.7-64bits\jre Linux Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200) Java version: 1.7.0_07 Java home: C:\soft\jdk1.7-64bits\jre Mac Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200) Java version: 1.7.0_07 Java home: C:\soft\jdk1.7-64bits\jre
6
Maven POM
POM es el acrónimo de Project Object Model. Es la piedra angular de trabajo en Maven. Es un fichero XML. Siempre debe estar en el directorio base de un proyecto con el nombre pom.xml.
El POM contiene información sobre el proyecto y detalles de la configuración utilizada por Maven para construir los proyectos. POM también contiene las metas (goals) y los plugins. Durante la ejecución de una tarea (task) o meta (goal), Maven busca el POM en el directorio actual. Lee el POM, obtiene la información de configuración necesaria, y luego ejecuta la meta (goal). Algunas de la configuración que puede especificarse en el POM son los siguientes:
• Dependencias del proyecto • plugins • Metas (goals) • Perfiles de construcción (build profiles) • Versionado del proyecto • Desarrolladores • Listas de correo
Antes de crear un POM, primero se debe decidir el grupo del proyecto (groupId), su nombre (artifactId) y su versión.
Estos atributos definen de forma única al proyecto en el repositorio. POM Ejemplo
Para cada proyecto, debe existir un fichero POM.
• Todos y cada uno de los ficheros POM necesitan tener: El elemento project y tres campos obligatorios: groupId, artifactId, version. • La notación que se utiliza en el repositorio es la siguiente: groupId:artifactId:version. • El elemento raíz del fichero POM.xml es el elemento Project. Project tiene tres sub-nodos principales:
7
•
Nodo Descripción groupId Identificador de grupo del proyecto. Debe ser único dentro de una organización o proyecto. artifactId Identificador del proyecto. En general es el nombre del proyecto. Junto al identificador de grupo, sirve para definir la ubicación del proyecto dentro del repositorio. version Versión del proyecto
Super POM
Todos los POM heredan de su padre (sea definido de forma explícita o no). Esta POM base es conocido como el Super POM, y contiene valores por defecto.
Maven utiliza el pom efectivo (configuración básica del super pom más la configuración del proyecto) para ejecutar una meta (goal). Sirve a los desarrolladores para especificar detalles de la configuración mínima de su pom.xml. Aunque las configuraciones se pueden cambiar fácilmente.
Una manera fácil de ver las configuraciones predeterminadas de la super POM es ejecutando el siguiente comando: mvn help:effective-pom
Práctica:
1. Crear la carpeta c:\dawsjee\mvn\pr01 2. Crear el fichero c:\dawsjee\mvn\pr01\pom.xml en formato UTF-8 3. Modificar el fichero c:\dawsjee\mvn\pr01\pom.xml para que contenga lo siguiente:
NOTA: Al copiar y pegar reemplaza las dobles comillas.
4. Abrir un terminal, colocarse en la carpeta c:\dawsjee\mvn\pr01 y ejecutar el comando mvn help:effective-pom
8
Resultado de la salida
[INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'help'. [INFO] ------[INFO] Building Unnamed - com.companyname.project-group:project:jar:1.0 [INFO] task-segment: [help:effective-pom] (aggregator-style) [INFO] ------[INFO] [help:effective-pom {execution: default-cli}] [INFO] Effective POMs, after inheritance, interpolation, and profiles are applied:
9
10
[INFO] ------[INFO] BUILD SUCCESSFUL [INFO] ------[INFO] Total time: < 1 second [INFO] Finished at: Sat Dec 08 07:43:28 CET 2012 [INFO] Final Memory: 8M/154M [INFO] ------
No es necesario escribir el fichero pom.xml.
Maven proporciona una gran cantidad de arquetipos para crear proyectos.
11
¿Qué significa Ciclos-de-vida de la construcción de un proyecto?
El ciclo de vida de la construcción de un proyecto, es una secuencia de fases que indican el orden en el que las metas (goals) deben ser ejecutadas. En donde, una fase representa una etapa del ciclo de vida.
Por ejemplo: Un ciclo de vida la construcción de un proyecto consiste de la siguiente secuencia de fases:
Fase Tarea Descripción Preparar-recursos Copia de En esta fase se automatiza el proceso de copiar recursos recursos Compilar compilación En esta fase se realiza la compilación de código fuente Empacar empacado En esta fase se crean los ficheros JAR/WAR/EAR mencionados en el fichero pom.xml. instalar instalación En esta fase se instalan los paquetes en el repositorio Maven (local o remoto).
Existen fases pre y fases post. Estas metas (goals) deben ser ejecutadas antes o después de una fase particular.
Cuando Maven inicia la construcción de un proyecto, lo hace siguiendo una secuencia bien definida de fases, ejecutando las metas (goals) indicadas en cada fase. Los ciclos de vida estándar son:
• clean • build (default) • site
Una meta (goal) representa una tarea (task) que contribuye a la construcción y administración de un proyecto. Una meta puede estar asociada varias fases o a ninguna. A pesar de que una meta no está asociada a una fase esta puede ser ejecutada fuera del ciclo de vida, invocándola directamente
El orden de ejecución depende del orden la que la meta (goal) o metas (goals) son invocadas. Por ejemplo, considere el comando siguiente. Los argumentos “clean” y “package” son fases de construcción mientras que el argumento “dependency:copy- dependencies” es una meta (goal). mvn clean dependency:copy-dependencies package
La fase “clean” será ejecutada primero y a continuación se ejecutará la meta (goal) dependency:copy-dependencies goal finalmente la fase “package” será ejecutada.
Ciclo de vida
12
Cuando se ejecuta el comando: mvn post-clean, Maven invoca el ciclo-de-vida que consta de las siguientes fases.
• pre-clean • clean • post-clean
La meta “clean” (clean:clean) está ligada a la fase “clean” . La meta clean:clean borra la salida generada por una compilación (elimina el directorio). Esto quiere decir que cuando se ejecuta el comando “mvn clean”, Maven elimina el directorio de construcción.
En el siguiente ejemplo, vamos a ligar la meta “maven-antrun-plugin:run” a las fases pre- clean, clean y post-clean. Esto nos va a permitir enviar mensajes de texto indicando en que fase del ciclo-de-vida clean se está ejecutando.
En la carpeta pom.xml in C:\dawsjee\mvn\pr02 se crea el fichero pom.xml con el siguiente contenido:
13
Abrir un terminal, y ejecutar el siguiente comando mvn:Now open command console, go to the folder containing pom.xml and execute the following mvn command.
C:\dawsjee\mvn\pr02>mvn post-clean
[INFO] Scanning for projects... [INFO] ------[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0 [INFO] task-segment: [post-clean] [INFO] ------[INFO] [antrun:run {execution: id.pre-clean}] [INFO] Executing tasks [echo] pre-clean phase [INFO] Executed tasks [INFO] [clean:clean {execution: default-clean}] [INFO] [antrun:run {execution: id.clean}] [INFO] Executing tasks [echo] clean phase [INFO] Executed tasks [INFO] [antrun:run {execution: id.post-clean}] [INFO] Executing tasks [echo] post-clean phase [INFO] Executed tasks [INFO] ------[INFO] BUILD SUCCESSFUL [INFO] ------[INFO] Total time: < 1 second [INFO] Finished at: Sat Dec 08 12:02:30 CET 2012 [INFO] Final Memory: 5M/122M [INFO] ------C:\dawsjee\mvn\pr02>
Si ejecuta el comando mvn clean command
¿Nota alguna diferencia?
C:\dawsjee\mvn\pr02>mvn clean [INFO] Scanning for projects... [INFO] ------
14
[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0 [INFO] task-segment: [clean] [INFO] ------[INFO] [antrun:run {execution: id.pre-clean}] [INFO] Executing tasks [echo] pre-clean phase [INFO] Executed tasks [INFO] [clean:clean {execution: default-clean}] [INFO] [antrun:run {execution: id.clean}] [INFO] Executing tasks [echo] clean phase [INFO] Executed tasks [INFO] ------[INFO] BUILD SUCCESSFUL [INFO] ------[INFO] Total time: < 1 second [INFO] Finished at: Sat Dec 08 12:04:15 CET 2012 [INFO] Final Memory: 5M/122M [INFO] ------
Se ejecutan las metas: pre-clean and clean, no se ejecuta la fase post-clean. Ciclo-de-vida por defecto (Build)
Este ciclo de vida es utilizado para construir una aplicación, consta de 23 fases.
Fase del ciclo-de-vida Descripción
Valida si el proyecto es correcto, y genera la información necesaria validate para completar el proceso build. initialize Inicializa propiedades
Genera el código fuente que será incluido en la fase de generate-sources compilación. process-sources Procesa el código fuente, por ejemplo filtra valores. generate-resources Genera los recursos que se deben incluir en el paquete. process-resources Copia y procesa los recursos en el directorio destino. compile Compila el código fuente del proyecto.
Realiza un Post-procesamiento de los ficheros generados en la process-classes compilación. El objetivo es optimizar/enriquecer los bytecodes de los ficheros .class de Java.
Genera cualquier código fuente necesario para ser incluido en la generate-test-sources fase de compilación.
15
Procesa el código fuente de las pruebas, por ejemplo: se filtran process-test-sources valores, ….
test-compile Compila el código fuente y lo deja en el directorio apropiado.
process-test-classes Procesa los ficheros generados en la compilación
test Ejecutar tests utilizando un marco-de-trabajo apropiado (Junit).
Realiza cualquier operación neesaria para preparar un paquete prepare-package antes de ser empacado
El código compilado, es empacado en un formato susceptible de package ser distribuido: JAR, WAR, EAR.
Realiza acciones necesarias antes de la integración de tests para su pre-integration-test ejecución.
Procesa y desliega el paquete en un entorno en donde los tests de integration-test integración pueden ser ejecutados.
Realizar acciones requeridas después de haber ejecutado los test de pre-integration-test integración.
Ejecutar cualquier validación para verificar que el paquete es verify valido y cumple los criterios de calidad.
Instalar los paquetes en el repositorio local, el cual puede ser install utilizado como una dependencia en otros proyectos.
deploy Copia el paquete final a los repositorios remotos.
Hay pocos conceptos importantes relacionados con ciclos-de-vida que merecen ser mencionados.
• Cuando una fase es llamada en base a un comando Maven, por ejmplo mvn compile, solo fases hasta llegar a esta fase incluida la fase será ejecutada. • Dependiendo del tipo de empacado (JAR / WAR / EAR), cambian las metas (goals) Maven que son enlazadas a diferentes fases del ciclo-de-vida .
En el siguiente ejmplo, se enlaza la meta (goal) maven-antrun-plugin:run a algunas de las fases del ciclo-de-vida del proceso “Build”. Esto nos permite mostrar mensajes de texto indicando las fases del ciclo-de-vida.
Para ello se debe crear la carpeta C:\dawsjee\mvn\pr03 y crear un fichero pom.xml con el siguiente código.
16
17
Ahora ejecuta el siguiente comando en una consola de comandos:
C:\dawsjee\mvn\pr03>mvn compile
La salida es:
C:\dawsjee\mvn\pr03>mvn compile [INFO] Scanning for projects... [INFO] ------[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0 [INFO] task-segment: [compile] [INFO] ------[INFO] [antrun:run {execution: id.validate}] [INFO] Executing tasks [echo] validate phase [INFO] Executed tasks [INFO] [resources:resources {execution: default-resources}] [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory C:\dawsjee\mvn\pr03\src\main\resource s [INFO] [compiler:compile {execution: default-compile}] [INFO] No sources to compile [INFO] [antrun:run {execution: id.compile}] [INFO] Executing tasks [echo] compile phase [INFO] Executed tasks [INFO] ------[INFO] BUILD SUCCESSFUL [INFO] ------[INFO] Total time: < 1 second [INFO] Finished at: Sat Dec 08 12:51:31 CET 2012 [INFO] Final Memory: 8M/154M [INFO] ------
Ciclo-de-vida del plugin “site”
El plugin site generalmente es utilizado para crear documentación referente a: informes, documentación, …
Fases:
• pre-site • site • post-site • site-deploy
18
En el siguiente ejemplo enlazamos la meta maven-antrun-plugin:run a todas las fases del ciclo-de-vida Site. Esto nos permitirá visualizar las fases del ciclo-de-vida.
Crear la carpeta C:\dawsjee\mvn\pr04 y crear un fichero pom.xml con el siguiente código.
19
Ejecutar el siguiente comando mvn.
C:\dawsjee\mvn\pr04>mvn site
[INFO] Scanning for projects... [INFO] ------[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0 [INFO] task-segment: [site] [INFO] ------[INFO] [antrun:run {execution: id.pre-site}] [INFO] Executing tasks [echo] pre-site phase [INFO] Executed tasks [INFO] [site:site {execution: default-site}] [WARNING] No URL defined for the project - decoration links will not be resolved
[INFO] artifact org.apache.maven.skins:maven-default-skin: checking for updates from jboss [INFO] Generating "About" report. [INFO] Generating "Issue Tracking" report. [INFO] Generating "Project Team" report. [INFO] Generating "Dependencies" report. [INFO] Generating "Project Plugins" report. [INFO] Generating "Continuous Integration" report. [INFO] Generating "Source Repository" report. [INFO] Generating "Project License" report. [INFO] Generating "Mailing Lists" report. [INFO] Generating "Plugin Management" report. [INFO] Generating "Project Summary" report. [INFO] [antrun:run {execution: id.site}] [INFO] Executing tasks [echo] site phase [INFO] Executed tasks [INFO] ------[INFO] BUILD SUCCESSFUL [INFO] ------[INFO] Total time: 2 seconds [INFO] Finished at: Sat Dec 08 12:57:19 CET 2012 [INFO] Final Memory: 31M/506M [INFO] ------
20
¿Qué es un Perfil de Construcción?
Un perfil de construcción es un conjunto de valores de configuración que pueden ser utilizados para remplazar los valores por defecto del proceso “Maven Build”. Mediante los perfiles de construcción se pueden personalizar construcciones para diferentes entornos de desarrollo por ejemplo: Producción, Investigación.
Los perfiles se especifican en el fichero pom.xml utilizando los elementos “activeProfiles” y “profiles”. Los perfiles modifican el POM en tiempo de construcción, y son utilizados para proporcionar parámetros a diferentes entornos “target” (por ejemplo, la ruta de los servidores de bases de datos dependiendo de desarrollo, pruebas, y producción). Tipos del perfil Build
Los perfiles build profiles son principalmente de tres tipos
Tipo ¿En donde es definido?
Por proyecto Se definen en el fichero POM pom.xml
Por usuario Se definen en el fichero xml: %USER_HOME%/.m2/settings.xml
Global Se definen en el fichero xml: %M2_HOME%/conf/settings.xml
Activación de perfiles
La activación de perfiles se puede realizar de diferentes formas:
• Explícitamente, utilizando la consola de comandos. • A través de “maven settings”. • Utilizando variables de entorno. • Presencia/ausencia de ficheros. Ejemplos de activación de perfiles
Asumiendo que un proyecto tiene la siguiente estructura de directorios:
21
En la carpeta src\main\resources hay tres ficheros específicos:
there are three environment specific files:
File Name Description
env.properties Configuración por defecto, utilizada si no se indica un perfil.
env.test.properties Configuración de pruebas cuando se utiliza el perfil “test”.
env.produccion.properties Configuración utilizada cuando de utiliza el perfil “produccion”
22
Activación explicita de un Perfil
Modificar el fichero pom.xml, para ligar la meta maven-antrun-plugin:run a la fase test.
En el fichero pom.xml se definen los perfiles y se activan utilizando parámetros en la líne de comandos.
Assume, we've created following pom.xml in C:\MVN\project folder.
Ejecute el siguiente comando maven, en donde se define el perfil utilizando la opción -P:
C:\dawsjee\mvn\pr05>mvn test -Ptest
La salida que se obtendrá será algo similar a lo siguiente:
C:\dawsjee\mvn\pr05>mvn test -Ptest [INFO] Scanning for projects... [INFO] ------[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0 [INFO] task-segment: [test] [INFO] ------
23
[INFO] [resources:resources {execution: default-resources}] [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] Copying 3 resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 1 source file to C:\dawsjee\mvn\pr05\target\classes [INFO] [resources:testResources {execution: default-testResources}] [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory C:\dawsjee\mvn\pr05\src\test\resource s [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] No sources to compile [INFO] [surefire:test {execution: default-test}] [INFO] No tests to run. [INFO] [antrun:run {execution: default}] [INFO] Executing tasks [echo] Using env.test.properties [INFO] Executed tasks [INFO] ------[INFO] BUILD SUCCESSFUL [INFO] ------[INFO] Total time: < 1 second [INFO] Finished at: Sat Dec 08 14:38:17 CET 2012 [INFO] Final Memory: 13M/154M [INFO] ------
Cómo ejercicio, realice los siguientes cambios:
• Agregue otro elemento perfil al fichero pom.xml • El id de este perfil debe ser normal. • Actualice la sección “task” para ejecutar el comando “echo env.properties” y copiar el fichero env.properties al directorio destino. • Repita los pasos anteriores para crear el perfil “produccion” y modificar la sección “task” para env.produccion.properties • Eso es todo. Ahora se cuentan con tres perfiles listos para ser utilizados (normal / test / produccion).
En una ventana de comando ejecute los siguientes comandos.
C:\dawsjee\mvn\pr05>mvn test –Pnormal C:\dawsjee\mvn\pr05>mvn test –Pproduccion
Observe la salida de cada “build”.
24
Activación de perfiles usando los “settings” de Maven
Crear, en caso de que no existe, el fichero xml settings.xml, localizado en la carpeta %USER_HOME%/.m2
Declarar el perfil “test” como un perfila activo mediante el nodo activeProfiles, de la forma siguiente:
A continuación, abrir una consola de comandos, colocarse en la carpeta que contiene el fichero pom.xml y ejecutar el siguiente comando mvn test. (En este caso no es necesario utilizar la opción -P. El haber declarado el perfil test como un perfil activo hace que se ejecute directamente al ejecutar el comando mvn test).
C:\dawsjee\mvn\pr05>mvn test Activación de un perfil mediante Variables de entorno
Borre el perfil test, de perfiles activos en el fichero settings.xml y actualice el perfil test en el fichero pom.xml. Agregue el elemento “activation” al elemento perfil, de la siguiente forma:
El perfil “test” será disparado cuando la propiedad de sistema “env” sea especificada con el valor "test". Para ello, se debe crear una variable de entorno "env" y establecer su valor a "test".
En una consola de comandos, ejecute el comando mvn siguiente:
C:\dawsjee\mvn\pr05>mvn test
25
Activación de un perfil utilizando el S.O.
Primero se debe agregar el elemento de activación, comofue descrito en el paso anterior.
El perfil “test” se disparará cuando el S.O.sea Windows XP.
Para comprobar que todo funciona apropiadamente, se debe ir a la carpeta que contiene el fichero pom.xml and y ejecutar el comando mvn siguiente (No se debe utilizar la opción –P )
C:\dawsjee\mvn\pr05>mvn test Activación de un perfil, en base a la existencia o ausencia de un Fichero
En este caso, el elemento “activation” debe ser declarado como sigue (El perfil test será disparado cuando no exista el fichero testt/generated- sources/axistools/wsdl2java/com/companyname/group ):
Para verificar que funciona apropiadamente, abra una consola de comandos, colóquese en la carpeta que contiene el fichero pom.xml y ejecute el comando mvn siguiente:
C:\dawsjee\mvn\pr05>mvn test
26
¿Qué es un repositorio Maven?
En la terminología de Maven, un repositorio es un directorio en donde todos los ficheros jar, plugins, o cualquier otro artefacto de un proyecto son almacenados y pueden ser utilizados fácilmente por Maven.
Existen tres tipos de repositorios Maven:
• local • central • remoto Repositorio Local
El repositorio Maven local es una carpeta en su ordenador. Se crea cuando se ejecuta por primera vez cualquier comando Maven.
El repositorio Maven local mantiene todas las dependencias de sus proyectos (bibliotecas jars, plugin jars, etcétera). Cuando se ejecuta un proceso Maven “build”, de forma automática Maven descarga todos los ficheros jars de las dependencias y los almacena en el repositorio local. Ayuda a evitar referencias a dependencias almacenadas en máquinas remotas, cada vez que se construye un proyecto.
Por defecto, el repositorio Maven local se crea en la carpeta %USER_HOME%. Para definir otra ubicación, basta con modificar el fichero settings.xml %M2_HOME%\conf.
Cuando ejecuta un comando Maven, Maven descargará las dependencias y las almacenará en el directorio indicado. Repositorio Central
El repositorio Maven central es un repositorio proporcionado por la comunidad Maven. Este contiene un gran número de bibliotecas comúnmente utilizadas.
Cuando Maven no encuentra dependencias en el repositorio local, inicia la búsqueda en el repositorio central utilizando la siguiente URL: http://repo1.maven.org/maven2/
Conceptos clave del repositorio Central:
• Este repositorio es gestionado por la comunidad Maven. • No es necesario configurarlo. • Se necesita acceso a Internet.
27
Para ver el contenido del repositorio central Maven, la comunidad Maven proporciona la URL: http://search.maven.org/#browse. Repositorio Remoto
Algunas veces, cuando Maven no encuentra una dependencia en el repositorio central detiene el proceso de construcción y escribe un mensaje de error en la consola. Para prevenir este caso, Maven proporciona el concepto de Repositorio Remoto, el cual es un repositorio alternativo.
Por ejemplo, el fichero POM.xml siguiente, declara que las dependencias que no sean localizadas en el repositorio central, se busquen en un repositorio remoto alternativo.
Secuencia de búsqueda
Cuando se ejecuta un comando “build”, Maven inicia la búsqueda de bibliotecas definidas en las dependencias siguiendo la siguiente secuencia:
• Paso 1. Las dependencias son buscadas en el repositorio local, si no son localizadas, continuamos con el paso 2. • Paso 2. Las dependencias se buscan en el repositorio central, si son localizadas, se descargan y se almacenan en el repositorio local, si no son localizadas procedemos con el tercer paso. • Paso 3. Si no se han declarado repositorios remotos, Maven simplemente, detiene el proceso “build” y genera un error indicando que fue imposible encontrar una dependencia. • Paso 4. Se realiza la búsqueda de las dependencias en los repositorios remotos declarados en el fichero pom.xml, si localiza las dependencias, las descarga y las
28
almacena en el repositorio local, si no las localiza, Maven detiene el proceso “build” y genera un error, indicando que no pudo localizar la(s) referencia(s). ¿Quéson los Plugins de Maven?
Realmente, Maven es un marco de trabajo para ejecutar plugins. Cada una de las tareas es hecha por uno o varios plugins. Los Plugins de Maven son utilizados para:
• Crear ficheros jar • Crear ficheros war • Compilar ficheros • Ejecutar unidades de validación de código • Generar la documentación de proyectos • Generar informes acerca de proyectos
En general, un plugin proporciona un conjunto de metas, que pueden ser ejecutadas utilizando la siguiente sintaxis: mvn [nombre-plugin]:[nombre-meta]
Por ejemplo, un proyecto Java puede ser compilado con el plugin “maven-compiler compile-goal” ejecutando el siguiente comando. mvn compiler:compile Tipos de Plugins
Maven proporciona dos tipos de Plugins:
Tipo Descripción
Se ejecutan durante la construcción y debe ser configurado el elemento Build plugins
Se ejecutan durante la generación del “site”y se configuran con el elemento Reporting plugins
A continuación se muestra una lista de algunos plugins.
Plugin Description clean Borra el directorio destino. compiler Compila los ficheros fuente Java.
Ejecuta los tests unitarios JUnit unit tests. Genera informes del surefile resultado de los tests.
29 jar Genera un fichero JAR. war Genera un fichero WAR javadoc Genera los ficheros Javadoc del proyecto.
Ejecuta un conjunto de tareas Ant, desde cualquier fase indicada en antrun el proceso build.
• Los plugins son definidos en el fichero pom.xml, dentro del elemento plugins. • Cada plugin puede consistir de varias metas. • Se puede definir la fase a partir de la cual se debe iniciar el procesamiento, definiéndolo en el elemento “phase”. • Es posible configurar tareas que deben ser ejecutadas enlazándolas con las metas de un plugin. Por ejemplo, se ha ligado la tarea echo task con la meta “run” del plugin maven-antrun • Esto es todo, Maven se encarga del resto. Descarga el plugin si no ese encuentra en el repositorio local, e inicia su procesamiento.
30
Creación de un Proyecto Java utilizando Maven
Maven emplea plugins (denominados archetypes) para crear proyectos. Para crear una aplicación básica Java se puede utilizar el plugin maven-archetype-quickstart.
Cree la carpeta C:\dawsjee\mvn\pr10, en una consola de comandos ejecute el siguiente comando mvn:
C:\dawsjee\mvn>mvn archetype:generate -DgroupId=com.curso.jee -DartifactId=pr10 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Maven se encarga de crear la estructura de una aplicación Java.
C:\dawsjee\mvn>mvn archetype:generate -DgroupId=com.curso.jee -DartifactId=pr10 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'archetype'. [INFO] ------[INFO] Building Maven Default Project [INFO] task-segment: [archetype:generate] (aggregator-style) [INFO] ------[INFO] Preparing archetype:generate [INFO] No goals needed for project - skipping [INFO] [archetype:generate {execution: default-cli}] [INFO] Generating project in Batch mode [INFO] ------[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.0 [INFO] ------[INFO] Parameter: groupId, Value: com.curso.jee [INFO] Parameter: packageName, Value: com.curso.jee [INFO] Parameter: package, Value: com.curso.jee [INFO] Parameter: artifactId, Value: pr10 [INFO] Parameter: basedir, Value: C:\dawsjee\mvn [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] project created from Old (1.x) Archetype in dir: C:\dawsjee\mvn\pr10 [INFO] ------[INFO] BUILD SUCCESSFUL [INFO] ------[INFO] Total time: 1 second [INFO] Finished at: Sat Dec 08 22:13:59 CET 2012 [INFO] Final Memory: 24M/221M [INFO] ------
La estructura de la carpeta PR10 es:
C:\DAWSJEE\MVN\PR10 └───src ├───main │ └───java │ └───com │ └───curso │ └───jee └───test └───java └───com └───curso
31
└───jee
Using above example, we can understand following key concepts
Estructura de la Descripción carpeta
pr10 Contiene la carpeta src y el fichero pom.xml
src/main/java Contiene los ficheros con código Java. Estructura del paquete: com.curso.jee
Contiene los ficheros con código Java para verificar el proyecto. La src/main/test estructura del paquete: com.curso.jee
Esta carpeta debe ser creada manualmente. En ella se deben colocar los src/main/resources ficheros con images, ficheros de propiedades, etcétera.
Observe que Maven ha creado un fichero fuente Java, y un fichero con código fuente para la validación (Test).
32
El contenido del fichero App.java es:
package com.curso.jee; public class App{ public static void main( String[] args ){ System.out.println( "Hello World!" ); } }
En la carpeta C:\dawsjee\mvn\pr10\src\test\java\com\curso\jee se ha creado el fichero AppTest.java. El contenido de este fichero es: 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
33
*/ public static Test suite(){ return new TestSuite( AppTest.class ); }
/** * Rigourous Test :-) */ public void testApp(){ assertTrue( true ); } }
package com.companyname.bank; 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 ); }
34
/** * @return the suite of tests being tested */ public static Test suite() { return new TestSuite( AppTest.class ); }
/** * Rigourous Test :-) */ public void testApp() { assertTrue( true ); } }
Los desarrolladores deben colocar sus ficheros de código de acuerdo a lo mencionado en la tabla mostrada anteriormente, para que Maven pueda gestionar el proyecto.
35
Construcción y Validación del proyecto Java utilizando Maven
Hasta ahora se ha visto como crear una aplicación Java utilizando Maven. Ahora nos centraremos en cómo construir y validar la aplicación.
Edite el fichero pom.xml ubicado en C:\dawsjee\mvn\pr10. El contenido del fichero pom.xml debe ser algo parecido al siguiente código:
Observe que Maven agrego el marco de trabajo “junit”. Además creo los ficheros App.java y AppTest.
En una consola de comandos ejecute el siguiente comando mvn:
C:\dawsjee\mvn\pr10>mvn clean package
La salida que se genera es:
C:\dawsjee\mvn\pr10>mvn clean package [INFO] Scanning for projects... [INFO] ------[INFO] Building pr10 [INFO] task-segment: [clean, package] [INFO] ------[INFO] [clean:clean {execution: default-clean}] [INFO] [resources:resources {execution: default-resources}] [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory C:\dawsjee\mvn\pr10\src\main\resource s [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 1 source file to C:\dawsjee\mvn\pr10\target\classes [INFO] [resources:testResources {execution: default-testResources}] [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory C:\dawsjee\mvn\pr10\src\test\resource s [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Compiling 1 source file to C:\dawsjee\mvn\pr10\target\test-classes [INFO] [surefire:test {execution: default-test}] [INFO] Surefire report directory: C:\dawsjee\mvn\pr10\target\surefire-reports
36
------T E S T S ------Running com.curso.jee.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] [jar:jar {execution: default-jar}] [INFO] Building jar: C:\dawsjee\mvn\pr10\target\pr10-1.0-SNAPSHOT.jar [INFO] ------[INFO] BUILD SUCCESSFUL [INFO] ------[INFO] Total time: 1 second [INFO] Finished at: Sat Dec 08 22:39:10 CET 2012 [INFO] Final Memory: 20M/224M [INFO] ------
Felicitaciones, usted ya ha creado su proyecto y ha creado un fichero .jar.
Se ha generado la carpeta target.
37
Dentro de esta carpeta se tuene un fichero pr10-1.0-SNAPSHOT.jar
A continuación se listan los conceptos de aprendizaje clave:
• Se dieron 2 metas. La primera para borrar el directorio “target” (meta cklean)y la segunda para empacar el proyecto en formato jar. • El fichero empacado “pr10-1.0-SNAPSHOT.jar” se encuentra en la carpeta pr10\target. • Los informes de “Test” se encuentran disponibles en la carpeta pr10\target\surefire-reports folder. • Maven se ha encargado de compilar los ficheros con código fuente y los ficheros con código fuente para ejecutar los tests. • Maven ejecuta los casos de prueba. • Finalmente, Maven genero el fichero .jar
38
Finalmente, abra una consola de comandos, colóquese en la carpeta C:\dawsjee\pr10\target\classes y ejecute el siguiente comando java:
C:\dawsjee\mvn\pr10\target\classes>java com.curso.jee.App
El resultado debe ser la cadena de texto:
Hello World! ¿Cómo agregar ficheros con código Java?
En la carpeta C:\dawsjee\mvn\pr10\src\main\java\com\curso\jee debe crear un fichero con el nombre Util.java
El contenido de este fichero debe ser: package com.curso.jee; public class Util { public static void printMessage(String message){ System.out.println(message); } }
Actualiza el fichero App.java para que tenga este código: package com.curso.jee; public class App { public static void main( String[] args ) { Util.printMessage("Bienvenido al curso de JEE!"); } }
Abra una consola de comandos y ejecute el siguiente comando mvn:
C:\dawsjee\mvn\pr10>mvn clean compile
C:\dawsjee\mvn\pr10>mvn clean compile [INFO] Scanning for projects... [INFO] ------[INFO] Building pr10 [INFO] task-segment: [clean, compile] [INFO] ------[INFO] [clean:clean {execution: default-clean}] [INFO] Deleting directory C:\dawsjee\mvn\pr10\target [INFO] [resources:resources {execution: default-resources}] [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory C:\dawsjee\mvn\pr10\src\main\resource s [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 2 source files to C:\dawsjee\mvn\pr10\target\classes [INFO] ------[INFO] BUILD SUCCESSFUL [INFO] ------[INFO] Total time: < 1 second [INFO] Finished at: Sun Dec 09 07:48:07 CET 2012 [INFO] Final Memory: 12M/154M [INFO] ------
Ahora ejecute la clase App.class
39
C:\dawsjee\mvn\pr10\target\classes>java com.curso.jee.App
En la consola debe aparecer lo siguiente:
Dependencias externas en Maven
Maven realiza la gestión de dependencias utilizando el concepto de repositorios Maven.
Pero ¿qué sucede si la dependencia no está disponible en cualquiera de los repositorios remotos y repositorio central?
Maven ofrece la respuesta para tal escenario utilizando el concepto de dependencia externa. En el proyecto creado en la sección anterior, realice los siguientes cambios .
• En la carpeta “src” se debe agregar una carpeta con el nombre lib • Haga una copia del fichero mysql-connector-java-5.1.22-bin.jar y póngala en la carpeta lib.
Ahora nuestra estructura de proyecto debe ser como la siguiente:
40
El proyecto ya tiene una librería específica propia, cosa común en los proyectos Java. Si construye el proyecto tal y como está ahora Maven generará un mensaje de error, debido a que Maven no puede descargar o referenciar esta biblioteca durante la fase de compilación.
Para solucionar este problema, se debe agregar información acerca de la dependencia externa en el pom.xml
41
Puntos a tener en cuenta, en lo referente a dependencias externas:
Las dependencias externas son configuradas, en el fichero pom.xml, de la misma forma que las dependencias locales.
• Debe especificar un “groupId” igual al nombre de la biblioteca. • Debe especificar el “artifactId” con el mismo nombre que la biblioteca. • Debe especificar el “scope” como “system”. • Debe indicar la ruta, en donde está el fichero, utilizando una ruta relativa a la ubicación del proyecto. Documentación de un Proyecto Maven
Este tutorial le mostrará cómo crear documentación de la aplicación de una sola vez. Así que vamos a empezar, vaya al directorio c:\dawsjee\mvn\pr10 . Ejecute el siguiente comando mvn.
c:\dawsjee\mvn\pr10
C:\dawsjee\mvn\pr10>mvn site
[INFO] Scanning for projects... [INFO] ------[INFO] Building pr10 [INFO] task-segment: [site] [INFO] ------[INFO] [site:site {execution: default-site}] [INFO] artifact org.apache.maven.skins:maven-default-skin: checking for updates from jboss [INFO] artifact org.apache.maven.skins:maven-default-skin: checking for updates from central [INFO] Generating "About" report. [INFO] Generating "Issue Tracking" report. [INFO] Generating "Project Team" report. [INFO] Generating "Dependencies" report. [INFO] Generating "Continuous Integration" report. [INFO] Generating "Source Repository" report. [INFO] Generating "Project License" report. [INFO] Generating "Mailing Lists" report. [INFO] Generating "Plugin Management" report. [INFO] Generating "Project Summary" report. [INFO] ------[INFO] BUILD SUCCESSFUL [INFO] ------[INFO] Total time: 4 seconds
42
[INFO] Finished at: Sun Dec 09 08:14:03 CET 2012 [INFO] Final Memory: 31M/350M [INFO] ------
C:\dawsjee\mvn\pr10>
Eso es todo. La documentación del proyecto esta lista. Maven ha generado una carpeta “site” dentro de la carpeta target.
• • Pulse sobre el fichero index.html para ver la documentación generada.
43
• • Maven genera la documentación utilizando la aplicación Doxia. Si desea crear documentación acerca de su proyecto, puede utilizar los siguientes formatos: •
Format Name Description Reference Formato de
APT documento de texto http://maven.apache.org/doxia/format.html plano. Formato de
XDoc documentación para http://jakarta.apache.org/site/jakarta-site2.html Maven 1.0
44
Utilizado para http://maven.apache.org/doxia/references/fml- FML documentos tipo format.html FAQ
XHTML HTML Extensible http://en.wikipedia.org/wiki/XHTML
Plantillas (Templates) del Proyecto Maven Maven ofrece a los usuarios, una lista muy grande de diferentes tipos de plantillas de proyecto (más de 614). Maven utiliza el concepto de arquetipo. Para iniciar rápidamente un nuevo proyecto java, basta con ejecutar siguiente comando mvn archetype:generate ¿Qué es un arquetipo?
Un arquetipo es un plugin de Maven, cuya tarea es crear una estructura de proyecto de acuerdo a una plantilla. A continuación, vamos a usar un arquetipo para crear una aplicación java sencilla. Utilización de una plantilla de proyecto
En una consola de comandos, colocarse en la carpeta c:\dawsjee\mvn y ejecutar el siguiente comando mvn:
C:\MVN>mvn archetype:generate
Maven will start processing and will ask to choose required archetype
[INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'archetype'. [INFO] ------[INFO] Building Maven Default Project [INFO] task-segment: [archetype:generate] (aggregator-style) [INFO] ------[INFO] Preparing archetype:generate [INFO] No goals needed for project - skipping [INFO] [archetype:generate {execution: default-cli}] [INFO] Generating project in Interactive mode [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype- quickstart:1.0) Choose archetype: 1: remote -> br.gov.frameworkdemoiselle.archetypes:demoiselle-jsf-jpa (Archetype for web applications (JSF + JPA) using Demoiselle Framework) 2: remote -> br.gov.frameworkdemoiselle.archetypes:demoiselle-minimal (Basic archetype for generic applications using Demoiselle Framework) 3: remote -> br.gov.frameworkdemoiselle.archetypes:demoiselle-vaadin-jpa (Archetype for Vaadin web applications) 4: remote -> co.ntier:spring-mvc-archetype (An extremely simple Spring MVC archetype, configured with NO XML.) 5: remote -> com.agilejava.docbkx:docbkx-quickstart-archetype (-) 6: remote -> com.alibaba.citrus.sample:archetype-webx-quickstart (-) 7: remote -> com.bsb.common.vaadin:com.bsb.common.vaadin.embed-simple-archetype (-) 8: remote -> com.bsb.common.vaadin:com.bsb.common.vaadin7.embed-simple-archetype (-) 9: remote -> com.cedarsoft.open.archetype:multi (-) 10: remote -> com.cedarsoft.open.archetype:simple (-)
45
11: remote -> com.dyuproject.protostuff.archetype:basic-gwt-webapp (webapp archetype using protostuff, json and gwt) 12: remote -> com.dyuproject.protostuff.archetype:basic-webapp (webapp archetype using protostuff, json and jquery) 13: remote -> com.dyuproject.protostuff.archetype:simple-gwt-webapp (webapp archetype using protobuf, json and gwt) 14: remote -> com.dyuproject.protostuff.archetype:simple-webapp (webapp archetype using protobuf, json and jquery) 15: remote -> com.force.sdk:springmvc-archetype (-) 16: remote -> com.github.igor-petruk.archetypes:maven-archetype-executable (Executable Quickstart Archetype that is ready to run with 'java -jar') 17: remote -> com.github.igor-petruk.archetypes:maven-archetype-scala-executable (Creates executable Scala Project that is ready to run with 'java -jar') 18: remote -> com.github.jpaoletti:jpm-archetype (Archetype for a jpm-struts1-bootstrap project) 19: remote -> com.github.lalyos:standalone-jpa-eclipselink-archetype (StandAlone (j2se) jpa project with eclipseLink implementations using embedded DerbiDB) 20: remote -> com.github.venkatramanm.swf-all:swf-archetype (Archetype to create apps using SWF) 21: remote -> com.github.venkatramanm.swf-all:swf-plugin-archetype (Archetype to create plugins for SWF) 22: remote -> com.google.code.plsqlmaven:plsql-package-archetype (a sample archetype that creates a project with a PL/SQL package inside and extends the parent project) 23: remote -> com.google.code.plsqlmaven:plsql-project-archetype (preconfigured PL/SQL project) 24: remote -> com.google.code.plsqlmaven:plsql-webapp-archetype (preconfigured PL/SQL webapp) 25: remote -> com.google.sitebricks:sitebricks-jetty-archetype (-) 26: remote -> com.googlecode.android-player-root-archetype:parent-archetype (-) 27: remote -> com.googlecode.apparat:apparat-archetype-asm (-) 28: remote -> com.googlecode.apparat:apparat-archetype-tdsi (-) 29: remote -> com.googlecode.etl-unit:etlunit-feature-archetype (-) 30: remote -> com.googlecode.etl-unit:etlunit-project-archetype (-) 31: remote -> com.googlecode.gwtquery:gquery-archetype (This archetype generates a Gwt-2.5.0-rc1 project with all set to use GwtQuery and its plugins.) 32: remote -> com.googlecode.gwtquery:gquery-plugin-archetype (-) 33: remote -> com.googlecode.jannocessor:jannocessor-sample-archetype (Multi-module sample project for annotation-driven source code generation with JAnnocessor) 34: remote -> com.googlecode.jdbc-proc:jdbc-proc-archetype (Creates simple project with jdbc-proc support) 35: remote -> com.googlecode.metridoc:metridoc-archetype (-) 36: remote -> com.googlecode.playn:playn-archetype (Archetype for PlayN game projects.) 37: remote -> com.highwise:weby (A simple spring mvc + hibernate project archetype) 38: remote -> com.jgeppert.struts2.jquery:struts2-jquery-archetype-base (This Archetype provides a Webapp Configuration ready for the Struts2 jQuery Plugin.) 39: remote -> com.jgeppert.struts2.jquery:struts2-jquery-archetype-mobile (This Archetype provides a Webapp Configuration ready for the Struts2 jQuery Mobile Plugin.) 40: remote -> com.jgeppert.struts2.jquery:struts2-jquery-bootstrap-archetype-grid (This Archetype provides a Webapp Configuration ready for the Struts2 jQuery Grid Plugin and the Struts2 Bootstrap Plugin.) 41: remote -> com.liferay.maven.archetypes:liferay-ext-archetype (Provides an archetype to create Liferay extensions.) 42: remote -> com.liferay.maven.archetypes:liferay-hook-archetype (Provides an archetype to create Liferay hooks.) 43: remote -> com.liferay.maven.archetypes:liferay-layouttpl-archetype (Provides an archetype to create Liferay layout templates.) 44: remote -> com.liferay.maven.archetypes:liferay-portlet-archetype (Provides an archetype to create Liferay portlets.) 45: remote -> com.liferay.maven.archetypes:liferay-portlet-icefaces-archetype (Provides an archetype to create Liferay ICEfaces portlets.) 46: remote -> com.liferay.maven.archetypes:liferay-portlet-jsf-archetype (Provides an archetype to create Liferay JSF portlets.) 47: remote -> com.liferay.maven.archetypes:liferay-portlet-liferay-faces-alloy-archetype (Provides an archetype to create Liferay Faces Alloy portlets.) 48: remote -> com.liferay.maven.archetypes:liferay-portlet-primefaces-archetype (Provides an archetype to create Liferay PrimeFaces portlets.) 49: remote -> com.liferay.maven.archetypes:liferay-portlet-richfaces-archetype (Provides an archetype to create Liferay RichFaces portlets.) 50: remote -> com.liferay.maven.archetypes:liferay-servicebuilder-archetype (Provides an archetype to create Liferay Service Builder portlets.) 51: remote -> com.liferay.maven.archetypes:liferay-theme-archetype (Provides an archetype to create Liferay themes.) 52: remote -> com.liferay.maven.archetypes:liferay-web-archetype (Provides an archetype to create Liferay webs.) 53: remote -> com.lordofthejars.thymeleafarchetype:thymeleaf-spring-maven-archetype (Thymeleaf Spring Maven Archetype) 54: remote -> com.matthewjosephtaylor.archetypes:application-archetype (Maven archetype for a single-jar application) 55: remote -> com.mikenimer:extjs-springmvc-webapp (A maven Archetype to create new EXTJS project powered by a spring MVC service.)
46
56: remote -> com.mysema.rdf:rdfbean-tapestry-quickstart (Archetype for creating a basic RDFBean Tapestry 5 application.) 57: remote -> com.mysema.rdfbean:rdfbean-tapestry-quickstart (-) 58: remote -> com.nativelibs4java:javacl-simple-tutorial (-) 59: remote -> com.pojosontheweb:woko-archetype (-) 60: remote -> com.proofpoint.platform:sample-server-archetype (Sample server archetype) 61: remote -> com.proofpoint.platform:skeleton-server-archetype (Skeleton server archetype) 62: remote -> com.pyx4me:j2me-simple (Maven 2 Archetype for midlet application using j2me-maven-plugin) 63: remote -> com.sixdimensions.wcm.cq:cq-deploy-plugin (Maven plugin for automating code deployments to Adobe CQ.) 64: remote -> com.sixsq.slipstream:slipstream-module (-) 65: remote -> com.sun.faces.regression:i_jsf_XXXX-archetype (-) 66: remote -> com.sun.faces.test:i_jsf_xxxx_htmlunit-archetype (-) 67: remote -> com.sun.jersey.archetypes:jersey-quickstart-ejb (An archetype which contains a simple Jersey based EJB project.) 68: remote -> com.sun.jersey.archetypes:jersey-quickstart-grizzly (An archetype which contains a quickstart Jersey project based on Grizzly container.) 69: remote -> com.sun.jersey.archetypes:jersey-quickstart-grizzly2 (An archetype which contains a quickstart Jersey project based on Grizzly2 container.) 70: remote -> com.sun.jersey.archetypes:jersey-quickstart-webapp (An archetype which contains a sample Jersey based Webapp project.) 71: remote -> com.taobao.itest:itest-sample-s30-archetype (-) 72: remote -> com.tqlab.sense:tqlab-sense-archetype (tqlab sense archetype) 73: remote -> com.vaadin:vaadin-archetype-addon (-) 74: remote -> com.vaadin:vaadin-archetype-application (This archetype generates a simple Vaadin application as a Maven project.) 75: remote -> com.vaadin:vaadin-archetype-clean (This archetype generates a simple Vaadin application as a Maven project. No custom widgetset is included.) 76: remote -> com.vaadin:vaadin-archetype-jpacontainer (This archetype generates a simple Vaadin application using JPAContainer as a Maven project.) 77: remote -> com.vaadin:vaadin-archetype-portlet (This archetype creates a simple porlet with required Vaadin dependencies. In addition to standard JSR 286 configurations the archetype also adds liferay specific configuration files, but they shoudn't affect other portals.) 78: remote -> com.vaadin:vaadin-archetype-sample (This archetype generates a Vaadin application as a Maven project. The application contains a custom GWT widgetset that is compiled by the GWT compiler and integrated into the project as part of the build process. The application is based on the Vaadin Color Picker Demo application available at http://vaadin.com.) 79: remote -> com.vaadin:vaadin-archetype-touchkit (This archetype generates a simple Vaadin application using TouchKit as a Maven project.) 80: remote -> com.vaadin:vaadin-archetype-widget (This archetype generates a Vaadin widget project for Vaadin 6.2+ and a test application.) 81: remote -> com.vaadin:vaadin-maven-plugin (Maven plugin for Vaadin.) 82: remote -> com.willowtreeapps:oak-archetype (-) 83: remote -> com.zenjava:javafx-basic-archetype (The JavaFX Basic Archetype provides core functionality for assembling JavaFX applications.) 84: remote -> com.zenjava:javafx-rest-archetype (The JavaFX Basic Archetype provides a Maven archetype for generating a basic JavaFX REST client-server starter project.) 85: remote -> de.akquinet.android.archetypes:android-quickstart (Creates a skeleton for an Android application) 86: remote -> de.akquinet.android.archetypes:android-release (Creates a skeleton for an Android application, instrumentation tests and ready-to-publish application on releases.) 87: remote -> de.akquinet.android.archetypes:android-with-test (Creates a skeleton for an Android application and instrumentation tests) 88: remote -> de.akquinet.chameria:chameria-quickstart-archetype (-) 89: remote -> de.akquinet.javascript.archetypes:javascript-jqueryplugin (-) 90: remote -> de.akquinet.javascript.archetypes:javascript-quickstart (-) 91: remote -> de.akquinet.jbosscc:jbosscc-javaee6-modular-ear-archetype (Maven Archetype to generate a modular Java EE 6 based project skeleton.) 92: remote -> de.akquinet.jbosscc:jbosscc-seam-archetype (Maven Archetype to generate a Seam Application - running on JBoss AS7) 93: remote -> de.cologneintelligence:archetype-fitgoodies-quickstart (Archetype which generates an FitGoodies- enabled example project) 94: remote -> de.crowdcode.kissmda.maven:kissmda-maven-app-archetype (-) 95: remote -> de.crowdcode.kissmda.maven:kissmda-maven-cartridge-archetype (-) 96: remote -> de.saumya.mojo:rails-maven-archetype (-)
47
97: remote -> de.schlichtherle:javafx-scala-demo (An archetype for a standalone JavaFX 2.0 application written in Scala. The generated application is translated from the Colorful Circles demo from the JavaFX 2.0 SDK.) 98: remote -> de.schlichtherle.truezip:truezip-archetype-file (TrueZIP File* module application - requires JSE 6.) 99: remote -> de.schlichtherle.truezip:truezip-archetype-path (TrueZIP Path module application - requires JSE 7.) 100: remote -> dk.jacobve.maven.archetypes:maven-archetype-flex (An archetype which contains a sample Maven Flex project using the israfil maven plugin) 101: remote -> es.ucm.fdi.grasia.faerie.archetypes:basic (Project for definition and implementation of an architecture/framework for Ambient-Assited Living systems) 102: remote -> eu.vitaliy:java6se-spring3-archetype (Simple spring 3 archetype) 103: remote -> io.airlift:sample-server-archetype (Sample server archetype) 104: remote -> io.airlift:skeleton-server-archetype (Skeleton server archetype) 105: remote -> it.amattioli.archetypes:javate-zk-archetype (-) 106: remote -> it.tidalwave.netbeans:netbeans-platform-archetype (Tidalwave NetBeans Platform Archetype) 107: remote -> it.tidalwave.northernwind:simple-project-site-archetype-1 (-) 108: remote -> it.tidalwave.northernwind:simple-site1-step1-archetype (-) 109: remote -> it.tidalwave.thesefoolishthings:project-archetype (TheseFoolishThings - Project Archetype) 110: remote -> javax.faces:javax.faces-war-archetype (-) 111: remote -> jboss:mobicents-ra-mavenization-archetype (-) 112: remote -> net.avh4.mvn.archetype:java-1.6-archetype (-) 113: remote -> net.contextfw:web-quickstart (Context Web Application Framework - Quickstart) 114: remote -> net.databinder:data-app (To make creating a new Databinder application easier, this archetype includes all required sources and resources.) 115: remote -> net.databinder.maven.net.databinder:data-app (To make creating a new Databinder application easier, this archetype includes all required sources and resources.) 116: remote -> net.devonlinux.solr:solr-quickstart-archetype (-) 117: remote -> net.devonlinux.solr:solr-quickstart-archetype-no-acceptance-tests (-) 118: remote -> net.flexmojos.oss:flexmojos-archetypes-application (-) 119: remote -> net.flexmojos.oss:flexmojos-archetypes-library (-) 120: remote -> net.flexmojos.oss:flexmojos-archetypes-modular-webapp (-) 121: remote -> net.java.truevfs:truevfs-archetype-access (Showcases the client API of the module TrueVFS Access.) 122: remote -> net.java.truevfs:truevfs-archetype-profile (Creates a custom TrueVFS Profile which bundles all selected TrueVFS modules for ease of use with and without Maven.) 123: remote -> net.kindleit:gae-archetype-gwt (Archetype for creating maven-gae projects that uses GWT for the view) 124: remote -> net.kindleit:gae-archetype-jsf (Archetype for creating maven-gae projects that works under Java Server Faces) 125: remote -> net.kindleit:gae-archetype-jsp (Archetype for creating maven-gae projects that uses jsp for the view) 126: remote -> net.kindleit:gae-archetype-objectify-jsp (Archetype for creating maven-gae projects that uses jsp for the view and Objectify for the ORM.) 127: remote -> net.kindleit:gae-archetype-wicket (Archetype for creating maven-gae projects based on apache wicket framework) 128: remote -> net.liftweb:lift-archetype-basic (Basic project archetype for Lift Web Framework (with database, logging, user management).) 129: remote -> net.liftweb:lift-archetype-basic_2.7.7 (Basic project archetype for Lift Web Framework (with database, logging, user management).) 130: remote -> net.liftweb:lift-archetype-basic_2.8.0 (Basic project archetype for Lift Web Framework (with database, logging, user management).) 131: remote -> net.liftweb:lift-archetype-basic_2.8.1 (-) 132: remote -> net.liftweb:lift-archetype-basic_2.9.1 (Basic project archetype for Lift Web Framework (with database, logging, user management).) 133: remote -> net.liftweb:lift-archetype-blank (Blank project archetype for Lift Web Framework.) 134: remote -> net.liftweb:lift-archetype-blank_2.7.7 (Blank project archetype for Lift Web Framework.) 135: remote -> net.liftweb:lift-archetype-blank_2.8.0 (Blank project archetype for Lift Web Framework.) 136: remote -> net.liftweb:lift-archetype-blank_2.8.1 (-) 137: remote -> net.liftweb:lift-archetype-blank_2.9.1 (Blank project archetype for Lift Web Framework.) 138: remote -> net.liftweb:lift-archetype-hellolift (Archetype - hellolift, a sample Lift application) 139: remote -> net.liftweb:lift-archetype-jpa-basic (Basic JPA archetype for Lift Web Framework.) 140: remote -> net.liftweb:lift-archetype-jpa-basic_2.7.7 (Basic JPA archetype for Lift Web Framework.) 141: remote -> net.liftweb:lift-archetype-jpa-basic_2.8.0 (Basic JPA archetype for Lift Web Framework.) 142: remote -> net.liftweb:lift-archetype-jpa-basic_2.8.1 (-) 143: remote -> net.liftweb:lift-archetype-jpa-basic_2.9.1 (Basic JPA archetype for Lift Web Framework.) 144: remote -> net.liftweb:lift-archetype-jpa-blank (Blank JPA archetype for Lift Web Framework.) 145: remote -> net.liftweb:lift-archetype-jpa-blank-single (Blank JPA archetype for Lift Web Framework (single project).)
48
146: remote -> net.liftweb:lift-archetype-jpa-blank-single_2.7.7 (Blank JPA archetype for Lift Web Framework (single project).) 147: remote -> net.liftweb:lift-archetype-jpa-blank-single_2.8.0 (Blank JPA archetype for Lift Web Framework (single project).) 148: remote -> net.liftweb:lift-archetype-jpa-blank-single_2.8.1 (-) 149: remote -> net.liftweb:lift-archetype-jpa-blank-single_2.9.1 (Blank JPA archetype for Lift Web Framework (single project).) 150: remote -> net.liftweb:lift-archetype-jpa-blank_2.7.7 (Blank JPA archetype for Lift Web Framework.) 151: remote -> net.liftweb:lift-archetype-jpa-blank_2.8.0 (Blank JPA archetype for Lift Web Framework.) 152: remote -> net.liftweb:lift-archetype-jpa-blank_2.8.1 (-) 153: remote -> net.liftweb:lift-archetype-jpa-blank_2.9.1 (Blank JPA archetype for Lift Web Framework.) 154: remote -> net.liftweb:lift-archetype-sbt (Basic project archetype for Lift Web Framework (with database, logging, user management) using the sbt build system) 155: remote -> net.liftweb:lift-archetype-sbt_2.7.7 (Basic project archetype for Lift Web Framework (with database, logging, user management) using the sbt build system) 156: remote -> net.liftweb:lift-archetype-sbt_2.8.0 (Basic project archetype for Lift Web Framework (with database, logging, user management) using the sbt build system) 157: remote -> net.liftweb:lift-archetype-sbt_2.8.1 (-) 158: remote -> net.liftweb:lift-archetype-sbt_2.9.1 (Basic project archetype for Lift Web Framework (with database, logging, user management) using the sbt build system) 159: remote -> net.officefloor.maven:woof-archetype (Archetype to generate a WoOF project) 160: remote -> net.phaedra:phaedra-archetype (-) 161: remote -> net.sf.ingenias:iafarch-empty (-) 162: remote -> net.sf.ingenias:iafarch-gui (-) 163: remote -> net.sf.ingenias:iafarch-helloworld (-) 164: remote -> net.sf.ingenias:iafarch-interaction (-) 165: remote -> net.sf.itcb.archetype:common-archetype (Archetype that might be used by IT managers in order to create the common packages of custom IT. groupId, artifactId, package, version, companyMainGroupId, companyMainArtifactId, companyMainVersion, company, companyUrl have to be defined in archetype execution. By convention, we recommend to call this module common-"yourcompany".) 166: remote -> net.sf.itcb.archetype:main-archetype (Archetype that might be used by IT managers in order to create the base of custom IT. archetypeId, groupId, version, company and companyUrl have to be defined in archetype execution. By convention, we recommend to call this module main-"yourcompany".) 167: remote -> net.sf.jlue:jlue-archetype-basic (Archetype - basic project for Jlue) 168: remote -> net.sf.jlue:jlue-archetype-blank (Archetype - blank project for Jlue) 169: remote -> net.sf.maven-har:maven-archetype-har (-) 170: remote -> net.sf.maven-sar:maven-archetype-sar (-) 171: remote -> net.sf.mgp:maven-archetype-gwt (An archetype which contains a sample Maven GWT project.) 172: remote -> net.sf.portletunit:portletunit-portlet-archetype (An archetype that creates a simple porltet with unit tests.) 173: remote -> net.sf.squirrel-sql.plugins:squirrelsql-plugin-archetype (This project produces the maven archetype that can be used to generate a SQuirreL Plugin maven project. The project that is produced contains an Example plugin that demonstrates the use of key plugin APIs.) 174: remote -> net.sourceforge.ota-tools.schema:ota-tools-schema-archetype (-) 175: remote -> net.thejeearchitectcookbook:jsf-jqmobile-archetype (JSF 2 and JQuery Mobile basic web archetype.) 176: remote -> net.thucydides:thucydides-easyb-archetype (Thucydides automated acceptance testing project using Selenium 2, JUnit and easyb) 177: remote -> net.thucydides:thucydides-simple-archetype (Thucydides automated acceptance testing project using Selenium 2 and JUnit) 178: remote -> no.tornado:modular-app-archetype (Modular application archetype based on Tornado Inject - One service and one client module.) 179: remote -> org.antlr:antlr3-maven-archetype (ANTLR 3 Maven Archetype) 180: remote -> org.apache.archiva:archiva-consumer-archetype (Simple archetype to create archiva consumers) 181: remote -> org.apache.avro:avro-service-archetype (Archetype that generates a simple example Avro service) 182: remote -> org.apache.camel:camel-component (-) 183: remote -> org.apache.camel:camel-router (-) 184: remote -> org.apache.camel.archetypes:camel-archetype-activemq (Creates a new Camel project that configures and interacts with ActiveMQ.) 185: remote -> org.apache.camel.archetypes:camel-archetype-blueprint (Creates a new Camel project with OSGi blueprint support. Ready to be deployed in OSGi.) 186: remote -> org.apache.camel.archetypes:camel-archetype-component (Creates a new Camel component.) 187: remote -> org.apache.camel.archetypes:camel-archetype-component-scala (Creates a new Camel component with Scala.) 188: remote -> org.apache.camel.archetypes:camel-archetype-dataformat (Creates a new Camel data format.)
49
189: remote -> org.apache.camel.archetypes:camel-archetype-java (Creates a new Camel project using Java DSL.) 190: remote -> org.apache.camel.archetypes:camel-archetype-scala (Creates a new Camel project using Scala DSL.) 191: remote -> org.apache.camel.archetypes:camel-archetype-spring (Creates a new Camel project with added Spring DSL support.) 192: remote -> org.apache.camel.archetypes:camel-archetype-spring-dm (Creates a new Camel project with added Spring DSL support. Ready to be deployed in OSGi.) 193: remote -> org.apache.camel.archetypes:camel-archetype-war (-) 194: remote -> org.apache.camel.archetypes:camel-archetype-web (Creates a new Camel web project that deploys the Camel routes as a WAR) 195: remote -> org.apache.camel.archetypes:camel-archetype-webconsole (Creates a new Camel project that deploys the Camel Web Console, REST API, and your routes as a WAR) 196: remote -> org.apache.clerezza:internal.archetype (Generic archetype for clerezza projects) 197: remote -> org.apache.cocoon:cocoon-22-archetype-block (-) 198: remote -> org.apache.cocoon:cocoon-22-archetype-block-plain (-) 199: remote -> org.apache.cocoon:cocoon-22-archetype-webapp (-) 200: remote -> org.apache.cocoon.archetype-block:cocoon-archetype-block (-) 201: remote -> org.apache.cocoon.archetype-parent:cocoon-archetype-parent (-) 202: remote -> org.apache.cocoon.archetype-sample:cocoon-archetype-sample (-) 203: remote -> org.apache.cocoon.archetype-webapp:cocoon-archetype-webapp (-) 204: remote -> org.apache.crunch:crunch-archetype (Create a basic, self-contained job for Apache Crunch.) 205: remote -> org.apache.cxf:cxf-http-basic (-) 206: remote -> org.apache.cxf.archetype:cxf-jaxrs-service (Simple CXF JAX-RS webapp service using Spring configuration) 207: remote -> org.apache.cxf.archetype:cxf-jaxws-javafirst (Creates a project for developing a Web service starting from Java code) 208: remote -> org.apache.directmemory.server:server-example-archetype (-) 209: remote -> org.apache.directory.server:apacheds-schema-archetype (-) 210: remote -> org.apache.directory.server:apacheds-testcase-archetype (-) 211: remote -> org.apache.felix:maven-ipojo-plugin (Maven Plugin to package iPOJO-powered bundles.) 212: remote -> org.apache.geronimo.buildsupport:geronimo-archetype-testsuite (Plugin to help create a testsuite) 213: remote -> org.apache.geronimo.buildsupport:geronimo-assembly-archetype (-) 214: remote -> org.apache.geronimo.buildsupport:geronimo-plugin-archetype (-) 215: remote -> org.apache.geronimo.plugins:geronimo-archetype-testsuite (Plugin to help create a testsuite) 216: remote -> org.apache.geronimo.samples:geronimo-samples-archetype (Plugin to help create a samples project) 217: remote -> org.apache.isis:quickstart-archetype (-) 218: remote -> org.apache.karaf.archetypes:archetypes-command (-) 219: remote -> org.apache.karaf.archetypes:karaf-assembly-archetype (An archetype for creating a Karaf assembly.) 220: remote -> org.apache.karaf.archetypes:karaf-blueprint-archetype (An archetype for creating a simple blueprint bundle.) 221: remote -> org.apache.karaf.archetypes:karaf-bundle-archetype (A simple bundle archetype.) 222: remote -> org.apache.karaf.archetypes:karaf-command-archetype (A Karaf command archetype.) 223: remote -> org.apache.karaf.archetypes:karaf-feature-archetype (This archetype sets up an empty karaf features project.) 224: remote -> org.apache.karaf.archetypes:karaf-kar-archetype (This archetype creates a KAR file from a provided features XML.) 225: remote -> org.apache.maven.archetypes:maven-archetype-archetype (An archetype which contains a sample archetype.) 226: remote -> org.apache.maven.archetypes:maven-archetype-j2ee-simple (An archetype which contains a simplifed sample J2EE application.) 227: remote -> org.apache.maven.archetypes:maven-archetype-marmalade-mojo (-) 228: remote -> org.apache.maven.archetypes:maven-archetype-mojo (An archetype which contains a sample a sample Maven plugin.) 229: remote -> org.apache.maven.archetypes:maven-archetype-plugin (An archetype which contains a sample Maven plugin.) 230: remote -> org.apache.maven.archetypes:maven-archetype-plugin-site (An archetype which contains a sample Maven plugin site. This archetype can be layered upon an existing Maven plugin project.) 231: remote -> org.apache.maven.archetypes:maven-archetype-portlet (An archetype which contains a sample JSR- 268 Portlet.) 232: remote -> org.apache.maven.archetypes:maven-archetype-profiles (-) 233: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.) 234: remote -> org.apache.maven.archetypes:maven-archetype-site (An archetype which contains a sample Maven site which demonstrates some of the supported document types like APT, XDoc, and FML and demonstrates how to i18n your site. This archetype can be layered upon an existing Maven project.)
50
235: remote -> org.apache.maven.archetypes:maven-archetype-site-simple (An archetype which contains a sample Maven site.) 236: remote -> org.apache.maven.archetypes:maven-archetype-webapp (An archetype which contains a sample Maven Webapp project.) 237: remote -> org.apache.myfaces.buildtools:myfaces-archetype-codi-jsf12 (Archetype to create a new JSF 1.2 webapp based on MyFaces CODI) 238: remote -> org.apache.myfaces.buildtools:myfaces-archetype-codi-jsf20 (Archetype to create a new JSF 2.0 webapp based on MyFaces CODI) 239: remote -> org.apache.myfaces.buildtools:myfaces-archetype-core-integration-test (Archetype to create a new MyFaces core project used for integration tests via cargo and HtmlUnit. Projects created via this archetype aim to test specific issues from the MyFaces core JIRA issue tracker and can be directly added to the MyFaces core integration-tests module.) 240: remote -> org.apache.myfaces.buildtools:myfaces-archetype-helloworld (Archetype to create a new webapp based on myfaces) 241: remote -> org.apache.myfaces.buildtools:myfaces-archetype-helloworld-facelets (Archetype to create a new webapp based on MyFaces and Facelets) 242: remote -> org.apache.myfaces.buildtools:myfaces-archetype-helloworld-portlets (Archetype to create a new portlet webapp based on myfaces) 243: remote -> org.apache.myfaces.buildtools:myfaces-archetype-helloworld20 (Archetype to create a new webapp based on MyFaces 2.0) 244: remote -> org.apache.myfaces.buildtools:myfaces-archetype-helloworld20-debug (Archetype to create a new webapp based on MyFaces 2.0, specially for debug issues) 245: remote -> org.apache.myfaces.buildtools:myfaces-archetype-helloworld20-owb (Archetype to create a new webapp based on MyFaces 2.0 with OpenWebBeans) 246: remote -> org.apache.myfaces.buildtools:myfaces-archetype-jsfcomponents (Archetype to create a libary project of JSF components) 247: remote -> org.apache.myfaces.buildtools:myfaces-archetype-jsfcomponents20 (Archetype to create a libary project of JSF 2.0 components) 248: remote -> org.apache.myfaces.buildtools:myfaces-archetype-trinidad (Archetype to create a new webapp based on Trinidad) 249: remote -> org.apache.myfaces.buildtools:myfaces-archetype-trinidad20 (Archetype to create a new webapp based on Trinidad and JSF 2.0) 250: remote -> org.apache.myfaces.trinidadbuild:myfaces-archetype-trinidad (Archetype to ease the burden of creating a new application based with Trinidad) 251: remote -> org.apache.npanday:maven-archetype-dotnet-simple (-) 252: remote -> org.apache.npanday:maven-archetype-netexecutable (-) 253: remote -> org.apache.npanday:maven-archetype-vb-simple (-) 254: remote -> org.apache.portals.jetspeed-2:application-archetype (Jetspeed-2 Maven2 Archetype used to generate portal application templates.) 255: remote -> org.apache.portals.jetspeed-2:component-archetype (Jetspeed-2 Maven2 Archetype used to generate component templates to be used by other components and applications.) 256: remote -> org.apache.portals.jetspeed-2:jetspeed-archetype (Jetspeed 2 Maven Archetype) 257: remote -> org.apache.portals.jetspeed-2:portal-archetype (Jetspeed-2 Maven2 Archetype used to generate portal instances.) 258: remote -> org.apache.portals.jetspeed-2:portal-component-archetype (Jetspeed-2 Maven2 Archetype used to generate component templates to be injected/installed as a library in the portal application itself.) 259: remote -> org.apache.portals.jetspeed-2:shared-component-archetype (Jetspeed-2 Maven2 Archetype used to generate component templates to be installed as a shared library for all portlet/web applications.) 260: remote -> org.apache.servicemix.tooling:servicemix-bean-service-unit (-) 261: remote -> org.apache.servicemix.tooling:servicemix-binding-component (-) 262: remote -> org.apache.servicemix.tooling:servicemix-camel-osgi-bundle (-) 263: remote -> org.apache.servicemix.tooling:servicemix-camel-service-unit (-) 264: remote -> org.apache.servicemix.tooling:servicemix-cxf-bc-service-unit (-) 265: remote -> org.apache.servicemix.tooling:servicemix-cxf-code-first-osgi-bundle (-) 266: remote -> org.apache.servicemix.tooling:servicemix-cxf-se-service-unit (-) 267: remote -> org.apache.servicemix.tooling:servicemix-cxf-se-wsdl-first-service-unit (-) 268: remote -> org.apache.servicemix.tooling:servicemix-cxf-wsdl-first-osgi-bundle (-) 269: remote -> org.apache.servicemix.tooling:servicemix-drools-service-unit (-) 270: remote -> org.apache.servicemix.tooling:servicemix-eip-service-unit (-) 271: remote -> org.apache.servicemix.tooling:servicemix-embedded-simple (-) 272: remote -> org.apache.servicemix.tooling:servicemix-exec-service-unit (-) 273: remote -> org.apache.servicemix.tooling:servicemix-file-poller-service-unit (-) 274: remote -> org.apache.servicemix.tooling:servicemix-file-sender-service-unit (-) 275: remote -> org.apache.servicemix.tooling:servicemix-file-service-unit (-)
51
276: remote -> org.apache.servicemix.tooling:servicemix-ftp-poller-service-unit (-) 277: remote -> org.apache.servicemix.tooling:servicemix-ftp-sender-service-unit (-) 278: remote -> org.apache.servicemix.tooling:servicemix-ftp-service-unit (-) 279: remote -> org.apache.servicemix.tooling:servicemix-http-consumer-service-unit (-) 280: remote -> org.apache.servicemix.tooling:servicemix-http-provider-service-unit (-) 281: remote -> org.apache.servicemix.tooling:servicemix-http-service-unit (-) 282: remote -> org.apache.servicemix.tooling:servicemix-jms-consumer-service-unit (-) 283: remote -> org.apache.servicemix.tooling:servicemix-jms-provider-service-unit (-) 284: remote -> org.apache.servicemix.tooling:servicemix-jms-service-unit (-) 285: remote -> org.apache.servicemix.tooling:servicemix-jsr181-annotated-service-unit (-) 286: remote -> org.apache.servicemix.tooling:servicemix-jsr181-service-unit (-) 287: remote -> org.apache.servicemix.tooling:servicemix-jsr181-wsdl-first-service-unit (-) 288: remote -> org.apache.servicemix.tooling:servicemix-lwcontainer-service-unit (-) 289: remote -> org.apache.servicemix.tooling:servicemix-mail-service-unit (-) 290: remote -> org.apache.servicemix.tooling:servicemix-ode-service-unit (-) 291: remote -> org.apache.servicemix.tooling:servicemix-osgi-bundle (-) 292: remote -> org.apache.servicemix.tooling:servicemix-osworkflow-service-unit (-) 293: remote -> org.apache.servicemix.tooling:servicemix-project-root (-) 294: remote -> org.apache.servicemix.tooling:servicemix-quartz-service-unit (-) 295: remote -> org.apache.servicemix.tooling:servicemix-saxon-service-unit (-) 296: remote -> org.apache.servicemix.tooling:servicemix-saxon-xquery-service-unit (-) 297: remote -> org.apache.servicemix.tooling:servicemix-saxon-xslt-service-unit (-) 298: remote -> org.apache.servicemix.tooling:servicemix-script-service-unit (-) 299: remote -> org.apache.servicemix.tooling:servicemix-scripting-service-unit (-) 300: remote -> org.apache.servicemix.tooling:servicemix-service-assembly (-) 301: remote -> org.apache.servicemix.tooling:servicemix-service-engine (-) 302: remote -> org.apache.servicemix.tooling:servicemix-service-unit (-) 303: remote -> org.apache.servicemix.tooling:servicemix-shared-library (-) 304: remote -> org.apache.servicemix.tooling:servicemix-smpp-service-unit (-) 305: remote -> org.apache.servicemix.tooling:servicemix-snmp-service-unit (-) 306: remote -> org.apache.servicemix.tooling:servicemix-validation-service-unit (-) 307: remote -> org.apache.servicemix.tooling:servicemix-vfs-service-unit (-) 308: remote -> org.apache.servicemix.tooling:servicemix-xmpp-service-unit (-) 309: remote -> org.apache.sling:sling-bundle-archetype (-) 310: remote -> org.apache.sling:sling-initial-content-archetype (Maven archetype for initial content) 311: remote -> org.apache.sling:sling-jcrinstall-bundle-archetype (-) 312: remote -> org.apache.sling:sling-launchpad-standalone-archetype (-) 313: remote -> org.apache.sling:sling-launchpad-webapp-archetype (-) 314: remote -> org.apache.sling:sling-servlet-archetype (Maven archetype for Sling Servlets) 315: remote -> org.apache.struts:struts2-archetype-blank (-) 316: remote -> org.apache.struts:struts2-archetype-convention (-) 317: remote -> org.apache.struts:struts2-archetype-dbportlet (-) 318: remote -> org.apache.struts:struts2-archetype-plugin (-) 319: remote -> org.apache.struts:struts2-archetype-portlet (-) 320: remote -> org.apache.struts:struts2-archetype-starter (-) 321: remote -> org.apache.synapse:synapse-package-archetype (This archetype can be used to create Maven projects that bundle a mediation into a standalone distribution ready to be executed) 322: remote -> org.apache.syncope:syncope-archetype (Apache Syncope Archetype) 323: remote -> org.apache.tapestry:quickstart (-) 324: remote -> org.apache.tapestry:tapestry-archetype (-) 325: remote -> org.apache.tapestry:tapestry-simple (Archetype for creating a basic Tapestry 5 application, including Eclipse control files.) 326: remote -> org.apache.tomcat.maven:tomcat-maven-archetype (-) 327: remote -> org.apache.turbine:turbine-webapp-2.3.3 (This archetype sets up a web application project based on Apache Turbine 2.3.3) 328: remote -> org.apache.turbine:turbine-webapp-4.0 (This archetype sets up a web application project based on Apache Turbine 4.0M1) 329: remote -> org.apache.tuscany.sca:tuscany-binding-archetype (Create a Tuscany binding extension project) 330: remote -> org.apache.tuscany.sca:tuscany-contribution-jar (Create an SCA JAR contribution project) 331: remote -> org.apache.tuscany.sca:tuscany-contribution-zip (Create an SCA ZIP contribution project) 332: remote -> org.apache.tuscany.sca:tuscany-policy-archetype (Create a Tuscany policy extension project) 333: remote -> org.apache.tuscany.sca:tuscany-quickstart (Create a simple Apache Tuscany SCA webapp project) 334: remote -> org.apache.tuscany.sca:tuscany-quickstart-bpel (Create an SCA Webapp project using BPEL) 335: remote -> org.apache.tuscany.sca:tuscany-quickstart-jsf (Create a Tuscany SCA and JSF project) 336: remote -> org.apache.tuscany.sca:tuscany-quickstart-jsonp (-)
52
337: remote -> org.apache.tuscany.sca:tuscany-quickstart-stripes (Create a simple Apache Tuscany SCA webapp project using the Stripes Web Framework) 338: remote -> org.apache.wicket:wicket-archetype-quickstart (-) 339: remote -> org.aperteworkflow:custom-widget-archetype (Aperte Workflow is a compilation of well-known, stable and mature frameworks into a complete BPM solution developed by BlueSoft sp. z o.o. - Polish independent software vendor. Project home page is available at http://www.aperteworkflow.org/) 340: remote -> org.appfuse:appfuse-basic-jsf (Maven 2 archetype that creates a web application with AppFuse embedded in it.) 341: remote -> org.appfuse:appfuse-basic-spring (Maven 2 archetype that creates a web application with AppFuse embedded in it.) 342: remote -> org.appfuse:appfuse-basic-struts (Maven 2 archetype that creates a web application with AppFuse embedded in it.) 343: remote -> org.appfuse:appfuse-basic-tapestry (Maven 2 archetype that creates a web application with AppFuse embedded in it.) 344: remote -> org.appfuse:appfuse-core (Maven 2 archetype that creates a backend (Managers, DAOs and Web Services) application with AppFuse embedded in it.) 345: remote -> org.appfuse:appfuse-modular-jsf (Maven 2 archetype that creates a modular web application with AppFuse. This archetype creates two modules: "core" and "web". The core module depends on appfuse-service, while the web module depends on core as well as AppFuse's JSF implementation.) 346: remote -> org.appfuse:appfuse-modular-spring (Maven 2 archetype that creates a modular web application with AppFuse. This archetype creates two modules: "core" and "web". The core module depends on appfuse-service, while the web module depends on core as well as AppFuse's Spring MVC implementation.) 347: remote -> org.appfuse:appfuse-modular-struts (Maven 2 archetype that creates a modular web application with AppFuse. This archetype creates two modules: "core" and "web". The core module depends on appfuse-service, while the web module depends on core as well as AppFuse's Struts implementation.) 348: remote -> org.appfuse:appfuse-modular-tapestry (Maven 2 archetype that creates a modular web application with AppFuse. This archetype creates two modules: "core" and "web". The core module depends on appfuse-service, while the web module depends on core as well as AppFuse's Tapestry implementation.) 349: remote -> org.appfuse.archetypes:appfuse-basic-jsf (Maven 2 archetype that creates a web application with AppFuse embedded in it.) 350: remote -> org.appfuse.archetypes:appfuse-basic-jsf-archetype (-) 351: remote -> org.appfuse.archetypes:appfuse-basic-spring (Maven 2 archetype that creates a web application with AppFuse embedded in it.) 352: remote -> org.appfuse.archetypes:appfuse-basic-spring-archetype (-) 353: remote -> org.appfuse.archetypes:appfuse-basic-struts (Maven 2 archetype that creates a web application with AppFuse embedded in it.) 354: remote -> org.appfuse.archetypes:appfuse-basic-struts-archetype (-) 355: remote -> org.appfuse.archetypes:appfuse-basic-tapestry (Maven 2 archetype that creates a web application with AppFuse embedded in it.) 356: remote -> org.appfuse.archetypes:appfuse-basic-tapestry-archetype (-) 357: remote -> org.appfuse.archetypes:appfuse-core (Maven 2 archetype that creates a backend (Managers, DAOs and Web Services) application with AppFuse embedded in it.) 358: remote -> org.appfuse.archetypes:appfuse-core-archetype (-) 359: remote -> org.appfuse.archetypes:appfuse-light-jsf-archetype (-) 360: remote -> org.appfuse.archetypes:appfuse-light-spring-archetype (-) 361: remote -> org.appfuse.archetypes:appfuse-light-spring-freemarker-archetype (-) 362: remote -> org.appfuse.archetypes:appfuse-light-spring-security-archetype (-) 363: remote -> org.appfuse.archetypes:appfuse-light-stripes-archetype (-) 364: remote -> org.appfuse.archetypes:appfuse-light-struts-archetype (-) 365: remote -> org.appfuse.archetypes:appfuse-light-tapestry-archetype (-) 366: remote -> org.appfuse.archetypes:appfuse-light-wicket-archetype (-) 367: remote -> org.appfuse.archetypes:appfuse-modular-jsf (Maven 2 archetype that creates a modular web application with AppFuse. This archetype creates two modules: "core" and "web". The core module depends on appfuse-service, while the web module depends on core as well as AppFuse's JSF implementation.) 368: remote -> org.appfuse.archetypes:appfuse-modular-jsf-archetype (-) 369: remote -> org.appfuse.archetypes:appfuse-modular-spring (Maven 2 archetype that creates a modular web application with AppFuse. This archetype creates two modules: "core" and "web". The core module depends on appfuse-service, while the web module depends on core as well as AppFuse's Spring MVC implementation.)
53
370: remote -> org.appfuse.archetypes:appfuse-modular-spring-archetype (-) 371: remote -> org.appfuse.archetypes:appfuse-modular-struts (Maven 2 archetype that creates a modular web application with AppFuse. This archetype creates two modules: "core" and "web". The core module depends on appfuse-service, while the web module depends on core as well as AppFuse's Struts implementation.) 372: remote -> org.appfuse.archetypes:appfuse-modular-struts-archetype (-) 373: remote -> org.appfuse.archetypes:appfuse-modular-tapestry (Maven 2 archetype that creates a modular web application with AppFuse. This archetype creates two modules: "core" and "web". The core module depends on appfuse-service, while the web module depends on core as well as AppFuse's Tapestry implementation.) 374: remote -> org.appfuse.archetypes:appfuse-modular-tapestry-archetype (-) 375: remote -> org.appfuse.archetypes:appfuse-ws-archetype (-) 376: remote -> org.blueoxygen.cimande:cimande-archetype (-) 377: remote -> org.blueoxygen.cimande:cimande-archetype-blank (-) 378: remote -> org.boretti.drools.integration:drools4-integration-helper-archetype (Support of the archetype for the Maven plugin) 379: remote -> org.boretti.drools.integration:drools5-integration-helper-archetype (This is an Maven 2 Archetype to support creation of a ready to use Maven 2 project with Drools support. This archetype contains examples of code based on interface, classes and pre/post condition. JUnit 4 examples are also included.) 380: remote -> org.brillien:brillien-archetype (-) 381: remote -> org.broadleafcommerce:ecommerce-archetype (BroadleafCommerce ECommerce Archetype) 382: remote -> org.codehaus.cargo:cargo-archetype-remote-deployment (Sample Maven archetype showing how to configure Cargo and Maven to generate a webapp and deploy it to a remote container.) 383: remote -> org.codehaus.cargo:cargo-archetype-webapp-functional-tests-module (Sample Maven archetype showing how to configure Cargo and Maven to run functional tests for a webapp by creating a separate functional-tests module.) 384: remote -> org.codehaus.cargo:cargo-archetype-webapp-single-module (Sample Maven archetype showing how to configure Cargo and Maven to run functional tests directly from a single webapp module.) 385: remote -> org.codehaus.cargo:cargo-archetype-webapp-with-datasource (Sample Maven archetype showing how to configure Cargo and Maven to run functional tests directly from a webapp with datasource. Cargo will be used to configure the datasource on the container.) 386: remote -> org.codehaus.castor:castor-archetype-codegen-testcase (-) 387: remote -> org.codehaus.castor:codegen-testcase (-) 388: remote -> org.codehaus.castor:cpa-testcase (-) 389: remote -> org.codehaus.enunciate.archetypes:enunciate-simple-archetype (-) 390: remote -> org.codehaus.gmaven.archetypes:gmaven-archetype-basic (-) 391: remote -> org.codehaus.gmaven.archetypes:gmaven-archetype-mojo (-) 392: remote -> org.codehaus.groovy.maven.archetypes:gmaven-archetype-basic (-) 393: remote -> org.codehaus.groovy.maven.archetypes:gmaven-archetype-mojo (-) 394: remote -> org.codehaus.mevenide.plugins:maven-archetype-nbm (Archetype for Netbeans Modules Maven setup) 395: remote -> org.codehaus.mojo:gwt-maven-plugin (Maven plugin for the Google Web Toolkit.) 396: remote -> org.codehaus.mojo:javascript-ria-archetype (A JavaScript Rich Internet Application template using jQuery and jQuery UI.) 397: remote -> org.codehaus.mojo:latex-maven-archetype (-) 398: remote -> org.codehaus.mojo:xmlbeans-maven-plugin (Runs the xmlbeans parser/code generator against schemas in files and dependent jars.) 399: remote -> org.codehaus.mojo.archetypes:appclient-javaee6 (-) 400: remote -> org.codehaus.mojo.archetypes:appclient-jee5 (-) 401: remote -> org.codehaus.mojo.archetypes:appframework (Archetype for creating application based on JSR 296) 402: remote -> org.codehaus.mojo.archetypes:ear-j2ee14 (-) 403: remote -> org.codehaus.mojo.archetypes:ear-javaee6 (-) 404: remote -> org.codehaus.mojo.archetypes:ear-jee5 (-) 405: remote -> org.codehaus.mojo.archetypes:ejb-j2ee13 (-) 406: remote -> org.codehaus.mojo.archetypes:ejb-j2ee14 (-) 407: remote -> org.codehaus.mojo.archetypes:ejb-javaee6 (-) 408: remote -> org.codehaus.mojo.archetypes:ejb-jee5 (-) 409: remote -> org.codehaus.mojo.archetypes:nbm-archetype (Archetype for development of NetBeans modules in Maven.) 410: remote -> org.codehaus.mojo.archetypes:nbm-osgi-archetype (Archetype for development of NetBeans modules that can depend on OSGi bundles.)
54
411: remote -> org.codehaus.mojo.archetypes:nbm-suite-root (Root project archetype for creating multi module projects developing NetBeans IDE modules. Approximately similar in functionality to module suites in NetBeans Ant projects.) 412: remote -> org.codehaus.mojo.archetypes:netbeans-platform-app-archetype (Archetype for sample application based on NetBeans Platform. Creates parent POM with branding and empty NBM project.) 413: remote -> org.codehaus.mojo.archetypes:osgi-archetype (Archetype for development of OSGi bundles using Apache Felix Maven plugin) 414: remote -> org.codehaus.mojo.archetypes:pom-root (Root project archetype for creating multi module projects) 415: remote -> org.codehaus.mojo.archetypes:webapp-j2ee13 (-) 416: remote -> org.codehaus.mojo.archetypes:webapp-j2ee14 (-) 417: remote -> org.codehaus.mojo.archetypes:webapp-javaee6 (-) 418: remote -> org.codehaus.mojo.archetypes:webapp-jee5 (-) 419: remote -> org.codehaus.mojo.groovy:groovy-maven-archetype (An archetype for creating Maven modules/projects using the Groovy language.) 420: remote -> org.codehaus.mojo.groovy:groovy-mojo-archetype (An archetype for writing Maven 2 plugins in the Groovy language.) 421: remote -> org.codehaus.openxma:org.openxma.dsl.sample-archetype (-) 422: remote -> org.codehaus.sonar.archetypes:sonar-basic-plugin-archetype (Maven archetype to create a basic Sonar plugin) 423: remote -> org.codehaus.sonar.archetypes:sonar-gwt-plugin-archetype (Maven archetype to create a Sonar plugin including GWT pages) 424: remote -> org.cometd.archetypes:cometd-archetype-dojo-jetty6 (-) 425: remote -> org.cometd.archetypes:cometd-archetype-dojo-jetty7 (-) 426: remote -> org.cometd.archetypes:cometd-archetype-dojo-jetty8 (-) 427: remote -> org.cometd.archetypes:cometd-archetype-jquery-jetty6 (-) 428: remote -> org.cometd.archetypes:cometd-archetype-jquery-jetty7 (-) 429: remote -> org.cometd.archetypes:cometd-archetype-jquery-jetty8 (-) 430: remote -> org.cometd.archetypes:cometd-archetype-spring-dojo-jetty7 (-) 431: remote -> org.cometd.archetypes:cometd-archetype-spring-jquery-jetty7 (-) 432: remote -> org.conventionsframework:conventions-archetype (-) 433: remote -> org.coosproject.maven.archetypes:coos-plugin-actor (-) 434: remote -> org.coosproject.maven.archetypes:coos-plugin-api (-) 435: remote -> org.coosproject.maven.archetypes:coos-plugin-noapi (-) 436: remote -> org.debux.webmotion:webmotion-archetype (WebMotion is Java web framework based on the Java EE6 standard) 437: remote -> org.devnull:devnull-web-archetype (DevNull starter webaapp with Spring MVC, JPA, Groovy and Twitter Bootstrap) 438: remote -> org.dishevelled:dsh-archetype (dishevelled.org maven project archetype.) 439: remote -> org.drombler.fx:drombler-fx-maven-archetype-application (-) 440: remote -> org.duelengine:duel-mvc-archetype (MVC project archetype using Jersey, Guice, DUEL views, DUEL merge) 441: remote -> org.duelengine:war-bootstrap-archetype (Simple WAR bootstrap for quick & dirty testing in multiple servlet containers (Tomcat, Jetty, Glassfish).) 442: remote -> org.eclipse.hudson.tools:maven-hpi-plugin (Support for developing Hudson plugins with Apache Maven.) 443: remote -> org.eiichiro.gig:gig-archetype-appengine (An archetype which contains a simple Gig Webapp project for Google App Engine.) 444: remote -> org.eiichiro.gig:gig-archetype-heroku (An archetype which contains a simple Gig Webapp project for Heroku.) 445: remote -> org.eiichiro.gig:gig-archetype-webapp (An archetype which contains a simple Gig Webapp project.) 446: remote -> org.entando.entando:entando-archetype-plugin-generic (Generic Plugin Archetype for Entando: an agile, modern and user-centric open source Portal platform.) 447: remote -> org.entando.entando:entando-archetype-portal-generic (Generic Portal Archetype for Entando: an agile, modern and user-centric open source Portal platform.) 448: remote -> org.fluttercode.knappsack:jee6-basic-archetype (-) 449: remote -> org.fluttercode.knappsack:jee6-minimal-archetype (-) 450: remote -> org.fluttercode.knappsack:jee6-sandbox-archetype (-) 451: remote -> org.fluttercode.knappsack:jee6-sandbox-demo-archetype (-) 452: remote -> org.fluttercode.knappsack:jee6-servlet-basic-archetype (-) 453: remote -> org.fluttercode.knappsack:jee6-servlet-demo-archetype (-) 454: remote -> org.fluttercode.knappsack:jee6-servlet-minimal-archetype (-) 455: remote -> org.fluttercode.knappsack:jee6-servlet-sandbox-archetype (-) 456: remote -> org.fluttercode.knappsack:spring-jsf-jpa-archetype (-) 457: remote -> org.fluttercode.knappsack:spring-mvc-jpa-archetype (-) 458: remote -> org.fluttercode.knappsack:spring-mvc-jpa-demo-archetype (-) 459: remote -> org.fusesource.scalate.tooling:scalate-archetype-empty (An archetype which creates an empty Scalate web application)
55
460: remote -> org.fusesource.scalate.tooling:scalate-archetype-guice (An archetype which creates an empty Scalate Guice web application) 461: remote -> org.fusesource.scalate.tooling:scalate-archetype-jersey (An archetype which creates an empty Scalate web application) 462: remote -> org.fusesource.scalate.tooling:scalate-archetype-sitegen (An archetype which creates an empty Scalate static website generation project) 463: remote -> org.geomajas:geomajas-gwt-archetype (Geomajas GWT application archetype) 464: remote -> org.geomajas:geomajas-plugin-archetype (-) 465: remote -> org.geoserver.maven:geoserver-archetype-wfsoutputformat (-) 466: remote -> org.glassfish.jersey.archetypes:jersey-quickstart-grizzly2 (An archetype which contains a quick start Jersey project based on Grizzly container.) 467: remote -> org.glassfish.jersey.archetypes:jersey-quickstart-webapp (An archetype which contains a quick start Jersey-based web application project.) 468: remote -> org.grails:grails-maven-archetype (Maven archetype for Grails projects.) 469: remote -> org.graniteds.archetypes:graniteds-flex-spring-jpa-hibernate (Base project with Flex 4.6, Spring 3 and Hibernate using GraniteDS with RemoteObject API.) 470: remote -> org.graniteds.archetypes:graniteds-spring-jpa-hibernate (Base project with Flex 4.5, Spring 3 and Hibernate using GraniteDS with RemoteObject API.) 471: remote -> org.graniteds.archetypes:graniteds-tide-cdi-jpa (Base project with Flex 4.5 and CDI using GraniteDS with the Tide API.) 472: remote -> org.graniteds.archetypes:graniteds-tide-flex-cdi-jpa (Base project with Flex 4.6, CDI and JPA using GraniteDS with Tide API.) 473: remote -> org.graniteds.archetypes:graniteds-tide-flex-seam-jpa-hibernate (Base project with Flex 4.6, JBoss Seam 2.2 and Hibernate using GraniteDS with the Tide API.) 474: remote -> org.graniteds.archetypes:graniteds-tide-flex-spring-jpa-hibernate (Base project with Flex 4.6, Spring 3.1 and Hibernate 3.6 using GraniteDS with the Tide API.) 475: remote -> org.graniteds.archetypes:graniteds-tide-javafx-spring-jpa-hibernate (Base project with JavaFX 2.2, Spring 3.1 and Hibernate 3.6 using GraniteDS with the Tide API.) 476: remote -> org.graniteds.archetypes:graniteds-tide-seam-jpa-hibernate (Base project with Flex 4.5, JBoss Seam 2.2 and Hibernate using GraniteDS with the Tide API.) 477: remote -> org.graniteds.archetypes:graniteds-tide-spring-jpa-hibernate (Base project with Flex 4.5, Spring 3 and Hibernate using GraniteDS with the Tide API.) 478: remote -> org.grouplens.lenskit:lenskit-archetype-simple-analysis (-) 479: remote -> org.hibernate:hibernate-search-quickstart (-) 480: remote -> org.hibernate:hibernate-validator-quickstart-archetype (Aggregator of the Hibernate Validator modules.) 481: remote -> org.imixs.application:imixs-workflow-jee-archetype (Imixs Workflow JEE Archetype provides a JEE Sample Application) 482: remote -> org.jasig.portlet.archetype:jsr286-archetype (-) 483: remote -> org.jbehave:jbehave-groovy-archetype (An archetype to run multiple textual stories with steps classes written in Groovy.) 484: remote -> org.jbehave:jbehave-guice-archetype (An archetype to run multiple textual stories configured programmatically but with steps classes composed using Guice.) 485: remote -> org.jbehave:jbehave-pico-archetype (An archetype to run multiple textual stories configured programmatically but with steps classes composed using Pico.) 486: remote -> org.jbehave:jbehave-simple-archetype (An archetype to run multiple textual stories configured programmatically.) 487: remote -> org.jbehave:jbehave-spring-archetype (An archetype to run multiple textual stories configured programmatically but with steps classes composed using Spring.) 488: remote -> org.jbehave.web:jbehave-web-selenium-flash-archetype (An archetype to run web Flash stories using Selenium.) 489: remote -> org.jbehave.web:jbehave-web-selenium-groovy-pico-archetype (An archetype to run web stories using Selenium, Groovy and Pico.) 490: remote -> org.jbehave.web:jbehave-web-selenium-java-spring-archetype (An archetype to run web stories using Selenium, Java and Spring.) 491: remote -> org.jboss.aerogear.archetypes:jboss-html5-mobile-archetype (An archetype that generates a Java EE 6 application using HTML5, and JAX-RS to support both desktop and mobile web browsers) 492: remote -> org.jboss.aerogear.archetypes:jboss-html5-mobile-blank-archetype (An archetype that generates a Java EE 6 application using HTML5, and JAX-RS to support both desktop and mobile web browsers) 493: remote -> org.jboss.as.archetypes:jboss-as-subsystem (An archetype that generates a skeleton project for implementing a JBoss AS 7 subsystem) 494: remote -> org.jboss.errai.archetypes:bus-quickstart (-) 495: remote -> org.jboss.errai.archetypes:cdi-quickstart (-) 496: remote -> org.jboss.errai.archetypes:jaxrs-quickstart (-) 497: remote -> org.jboss.errai.archetypes:jboss-errai-kitchensink-archetype (A starter Errai + Java EE 6 webapp project for use on JBoss AS 7 / EAP 6, generated from the jboss-errai-kitchensink-archetype archetype)
56
498: remote -> org.jboss.errai.archetypes:kitchensink-quickstart (A starter Errai + Java EE 6 webapp project for use on JBoss AS 7 / EAP 6, generated from the kitchensink-quickstart archetype) 499: remote -> org.jboss.portletbridge.archetypes:1.2-basic (-) 500: remote -> org.jboss.portletbridge.archetypes:2.0-basic (-) 501: remote -> org.jboss.portletbridge.archetypes:2.0-basic-archetype (-) 502: remote -> org.jboss.portletbridge.archetypes:jsf2-basic-archetype (-) 503: remote -> org.jboss.portletbridge.archetypes:richfaces-basic (-) 504: remote -> org.jboss.portletbridge.archetypes:richfaces-simpleapp-archetype (-) 505: remote -> org.jboss.portletbridge.archetypes:seam-basic (-) 506: remote -> org.jboss.spec.archetypes:jboss-html5-mobile-archetype (An archetype that generates a Java EE 6 application using HTML5, and JAX-RS to support both desktop and mobile web browsers) 507: remote -> org.jboss.spec.archetypes:jboss-javaee6-ear-webapp (An archetype that generates a starter Java EE 6 webapp project for JBoss AS 7. The project is an EAR, with an EJB-JAR and WAR) 508: remote -> org.jboss.spec.archetypes:jboss-javaee6-webapp (An archetype that generates a starter Java EE 6 webapp project for JBoss AS 7) 509: remote -> org.jboss.spec.archetypes:jboss-javaee6-webapp-archetype (An archetype that generates a starter Java EE 6 webapp project for JBoss AS 7.1 (by default) or EAP 6 (if the "enterprise" property is true)) 510: remote -> org.jboss.spec.archetypes:jboss-javaee6-webapp-archetype-blank (An archetype that generates a starter Java EE 6 webapp project for JBoss AS 7 (by default) or EAP 6 (if the "enterprise" property is true)) 511: remote -> org.jboss.spec.archetypes:jboss-javaee6-webapp-blank-archetype (An archetype that generates a starter Java EE 6 webapp project for JBoss AS 7.1 (by default) or EAP 6 (if the "enterprise" property is true)) 512: remote -> org.jboss.spec.archetypes:jboss-javaee6-webapp-ear-archetype (An archetype that generates a starter Java EE 6 webapp project for JBoss AS 7.1 (by default) or EAP 6 (if the "enterprise" property is true). The project is an EAR, with an EJB-JAR and WAR) 513: remote -> org.jboss.spec.archetypes:jboss-javaee6-webapp-ear-archetype-blank (An archetype that generates a starter Java EE 6 webapp project for JBoss AS 7 (by default) or EAP 6 (if the "enterprise" property is true). The project is an EAR, with an EJB-JAR and WAR) 514: remote -> org.jboss.spec.archetypes:jboss-javaee6-webapp-ear-blank-archetype (An archetype that generates a starter Java EE 6 webapp project for JBoss AS 7.1 (by default) or EAP 6 (if the "enterprise" property is true). The project is an EAR, with an EJB-JAR and WAR) 515: remote -> org.jboss.spring.archetypes:spring-mvc-webapp (An archetype that generates a starter Spring MVC application with Java EE persistence settings (server bootstrapped JPA, JTA transaction management) for JBoss AS7) 516: remote -> org.jboss.weld.archetypes:jboss-javaee6-webapp (-) 517: remote -> org.jboss.weld.archetypes:jboss-jsf-weld-servlet-webapp (-) 518: remote -> org.jboss.weld.archetypes:weld-jsf-jee (Weld archetype for creating a Java EE 6 application using JSF 2.0, CDI 1.0, EJB 3.1 and JPA 2.0 (persistence unit included)) 519: remote -> org.jboss.weld.archetypes:weld-jsf-jee-minimal (Weld archetype for creating a minimal Java EE 6 application using JSF 2.0, CDI 1.0 and EJB 3.1 (persistence unit not included)) 520: remote -> org.jboss.weld.archetypes:weld-jsf-servlet-minimal (Weld archetype for creating an application using JSF 2.0 and CDI 1.0 for Servlet Containers (Tomcat 6 / Jetty 6)) 521: remote -> org.jbundle.config:org.jbundle.config.archetype (-) 522: remote -> org.jbundle.util.webapp:jbundle-util-webapp-cgi-archetype (-) 523: remote -> org.jbundle.util.webapp:jbundle-util-webapp-files-archetype (-) 524: remote -> org.jbundle.util.webapp:jbundle-util-webapp-proxy-archetype (-) 525: remote -> org.jbundle.util.webapp:jbundle-util-webapp-redirect-archetype (-) 526: remote -> org.jbundle.util.webapp:jbundle-util-webapp-upload-archetype (-) 527: remote -> org.jbundle.util.webapp:jbundle-util-webapp-webdav-archetype (-) 528: remote -> org.jbundle.util.webapp:jbundle-util-webapp-website-archetype (-) 529: remote -> org.jbundle.util.webapp:jbundle-util-webapp-webstart-archetype (-) 530: remote -> org.jbundle.util.webapp:jbundle-util-webapp-webstart-reactor-archetype (-) 531: remote -> org.jbundle.util.webapp:org.jbundle.util.webapp.cgi-archetype (-) 532: remote -> org.jbundle.util.webapp:org.jbundle.util.webapp.files-archetype (-) 533: remote -> org.jbundle.util.webapp:org.jbundle.util.webapp.proxy-archetype (-) 534: remote -> org.jbundle.util.webapp:org.jbundle.util.webapp.redirect-archetype (-) 535: remote -> org.jbundle.util.webapp:org.jbundle.util.webapp.upload-archetype (-) 536: remote -> org.jbundle.util.webapp:org.jbundle.util.webapp.webdav-archetype (-) 537: remote -> org.jbundle.util.webapp:org.jbundle.util.webapp.website-archetype (-) 538: remote -> org.jclouds:jclouds-compute-service-archetype (Maven archetype for a provider of a Compute service) 539: remote -> org.jclouds:jclouds-rest-client-archetype (Maven archetype for a provider of a rest-speaking service) 540: remote -> org.jibx.ota.osgi:jibx-ota-osgi-archetype (-) 541: remote -> org.jibx.schema.config:opentravel-ws-archetype (-) 542: remote -> org.jibx.schema.org.opentravel._2010B:opentravel-archetype (-) 543: remote -> org.jibx.schema.org.opentravel._2011A:opentravel-archetype (-) 544: remote -> org.jibx.schema.org.opentravel._2011B:opentravel-archetype (-) 545: remote -> org.jibx.schema.org.opentravel._2011B.ws:opentravel-touractivity-ws-archetype (-) 546: remote -> org.jibx.schema.org.opentravel._2011B.ws:opentravel-touractivity-ws-service-archetype (-) 547: remote -> org.jibx.schema.org.opentravel._2012A:opentravel-archetype (-)
57
548: remote -> org.jibx.schema.org.opentravel._2012A.ws:opentravel-touractivity-ws-service-archetype (-) 549: remote -> org.jini.maven-jini-plugin:jini-service-archetype (Archetype for Jini service project creation) 550: remote -> org.juzu:juzu-archetype (-) 551: remote -> org.jvnet.hudson.tools:maven-hpi-plugin (Support for developing Hudson plugins with Apache Maven.) 552: remote -> org.kuali.rice:rice-archetype-quickstart (This is a archetype which creates a Kuali Rice based application. It uses a basic project structure demonstrating war overlays, service implementation, unit and integration testing. It is configured in a bundled integration model with Kuali Rice.) 553: remote -> org.kualigan.maven.archetypes:kc-archetype (-) 554: remote -> org.kualigan.maven.archetypes:kfs-archetype (-) 555: remote -> org.kualigan.maven.archetypes:kfs3-archetype (-) 556: remote -> org.kualigan.maven.archetypes:kfs4-archetype (-) 557: remote -> org.kualigan.maven.archetypes:kr-archetype (-) 558: remote -> org.kualigan.maven.archetypes:lb-copy-archetype (Archetype used when copying databases. Creates a database project for the lb-maven-project to use in copying/exporting a database) 559: remote -> org.makumba:makumba-archetype (Archetype for a makumba web-application) 560: remote -> org.meruvian.midas:midas-archetype-blank (Generates blank Midas project template) 561: remote -> org.meruvian.yama:yama-jaxrs-archetype (-) 562: remote -> org.meruvian.yama:yama-struts-archetype (-) 563: remote -> org.mobicents.servlet.sip.archetypes:maven-archetype-sipapp (Archetype providing a default layout to start building SIP Servlets Applications.) 564: remote -> org.mortbay.jetty.archetype:jetty-archetype-assembler (-) 565: remote -> org.mortbay.jetty.archetype:jetty-archetype-fileserver (-) 566: remote -> org.mule.ibeans:ibean-archetype (An archetype for creating an empty ibean maven project) 567: remote -> org.mule.tools:ibean-archetype (-) 568: remote -> org.mule.tools:mule-catalog-archetype (-) 569: remote -> org.mule.tools:mule-cloud-connector-archetype (-) 570: remote -> org.mule.tools:mule-example-archetype (An archetype for creating a Mule example application.) 571: remote -> org.mule.tools:mule-module-archetype (An architype for creating a Mule Module. It provides options for adding certain mule features and configuring the module for Muleforge.) 572: remote -> org.mule.tools:mule-project-archetype (An architype for creating Mule applications.) 573: remote -> org.mule.tools:mule-transport-archetype (Archetype for Mule 2.0 and above transport projects.) 574: remote -> org.multiverse:multiverse-project-archetype (Skeleton for a project using Multiverse) 575: remote -> org.nakedobjects:application-archetype (-) 576: remote -> org.nakedobjects:remoting-support (-) 577: remote -> org.nakedobjects.archetypes:application (-) 578: remote -> org.nakedobjects.plugins:hibernate-support (-) 579: remote -> org.nakedobjects.plugins:html-war (-) 580: remote -> org.nakedobjects.plugins:htmlviewer-war (-) 581: remote -> org.nakedobjects.prototyping:application (-) 582: remote -> org.nakedobjects.prototyping:icons (-) 583: remote -> org.nakedosgi:bundle-archetype (-) 584: remote -> org.objectweb.fractal.cecilia:maven-archetype-cecilia-app (This archetype is useful to quick start Cecilia applications, having a source tree template already filled.) 585: remote -> org.objectweb.fractal.cecilia:maven-archetype-cecilia-application (This archetype is useful to quick start Cecilia applications, having a source tree template already filled.) 586: remote -> org.objectweb.fractal.cecilia:maven-archetype-cecilia-library (This archetype is useful to quick start Cecilia components library projects, having a source tree template already filled.) 587: remote -> org.objectweb.petals:maven-archetype-petals-jbi-binding-component (>This project is Maven 2 archetype associated to a JBI binding component project.) 588: remote -> org.objectweb.petals:maven-archetype-petals-jbi-service-assembly (This project is Maven 2 archetype associated to a JBI service assembly project.) 589: remote -> org.objectweb.petals:maven-archetype-petals-jbi-service-engine (This project is Maven 2 archetype associated to a JBI service engine project.) 590: remote -> org.objectweb.petals:maven-archetype-petals-jbi-service-unit (This project is Maven 2 archetype associated to a JBI service unit project.) 591: remote -> org.opencoweb:admin-archetype (-) 592: remote -> org.opencoweb:coweb-archetype (-) 593: remote -> org.openengsb.tooling.archetypes:openengsb-tooling-archetypes-connector (Archetype to produce new Connector project) 594: remote -> org.openengsb.tooling.archetypes:openengsb-tooling-archetypes-domain (Archetype to produce new Domain project) 595: remote -> org.openengsb.tooling.archetypes:org.openengsb.tooling.archetypes.connector (Archetype to produce new Connector project)
58
596: remote -> org.openengsb.tooling.archetypes:org.openengsb.tooling.archetypes.domain (Archetype to produce new Domain project) 597: remote -> org.openengsb.tooling.archetypes.clientproject:org.openengsb.tooling.archetypes.clientproject.root (Archetype to produce new client project) 598: remote -> org.openl.rules:openl-simple-project (-) 599: remote -> org.ops4j.pax.construct:maven-archetype-osgi-bundle (-) 600: remote -> org.ops4j.pax.construct:maven-archetype-osgi-project (-) 601: remote -> org.ops4j.pax.construct:maven-archetype-osgi-service (-) 602: remote -> org.ops4j.pax.construct:maven-archetype-osgi-wrapper (-) 603: remote -> org.ops4j.pax.construct:maven-archetype-spring-bean (-) 604: remote -> org.ops4j.pax.exam:maven-archetype-paxexam-junit () 605: remote -> org.ops4j.pax.web.archetypes:wab-archetype (-) 606: remote -> org.ops4j.pax.web.archetypes:wab-gwt-archetype (-) 607: remote -> org.ops4j.pax.web.archetypes:war-archetype (-) 608: remote -> org.ow2.jasmine.kerneos:kerneos-module-archetype (-) 609: remote -> org.ow2.jasmine.kerneos:kerneos-war-archetype (-) 610: remote -> org.ow2.jasmine.probe:jprobe-collector-archetype (-) 611: remote -> org.ow2.jasmine.probe:jprobe-outer-archetype (-) 612: remote -> org.ow2.jonas.camel:camel-archetype-simple-route (-) 613: remote -> org.ow2.kerneos:kerneos-application-archetype (-) 614: remote -> org.ow2.kerneos:kerneos-flex-archetypes-application (-) 615: remote -> org.ow2.kerneos:kerneos-flex-archetypes-module (-) 616: remote -> org.ow2.kerneos:kerneos-flex-archetypes-module-fragment (-) 617: remote -> org.ow2.kerneos:kerneos-module-archetype (-) 618: remote -> org.ow2.orchestra:orchestra-extension-archetype (Generates extensions for Orchestra) 619: remote -> org.ow2.petals:maven-archetype-petals-jbi-binding-component (This project is Maven 2 archetype associated to a JBI binding component project.) 620: remote -> org.ow2.petals:maven-archetype-petals-jbi-service-assembly (This project is Maven 2 archetype associated to a JBI service assembly project.) 621: remote -> org.ow2.petals:maven-archetype-petals-jbi-service-engine (This project is Maven 2 archetype associated to a JBI service engine project.) 622: remote -> org.ow2.petals:maven-archetype-petals-jbi-service-unit (This project is Maven 2 archetype associated to a JBI service unit project.) 623: remote -> org.ow2.petals:maven-archetype-petals-jbi-shared-library (This project is Maven 2 archetype associated to a JBI Shared Library project.) 624: remote -> org.ow2.shelbie:shelbie-command-archetype (-) 625: remote -> org.ow2.weblab.tools.maven:weblab-archetype-analyser (The Archetype used to generate a stub for analyser. This should be called through the weblab-archetype-plugin and not directly.) 626: remote -> org.ow2.weblab.tools.maven:weblab-archetype-configurable (The Archetype used to generate a stub for configurable. This should be called through the weblab-archetype-plugin and not directly.) 627: remote -> org.ow2.weblab.tools.maven:weblab-archetype-indexer (The Archetype used to generate a stub for indexer. This should be called through the weblab-archetype-plugin and not directly.) 628: remote -> org.ow2.weblab.tools.maven:weblab-archetype-queuemanager (The Archetype used to generate a stub for queuemanager. This should be called through the weblab-archetype-plugin and not directly.) 629: remote -> org.ow2.weblab.tools.maven:weblab-archetype-reportprovider (The Archetype used to generate a stub for reportprovider. This should be called through the weblab-archetype-plugin and not directly.) 630: remote -> org.ow2.weblab.tools.maven:weblab-archetype-resourcecontainer (The Archetype used to generate a stub for resourcecontainer. This should be called through the weblab-archetype-plugin and not directly.) 631: remote -> org.ow2.weblab.tools.maven:weblab-archetype-resources (The Archetype used to generate a stub for any WebLab service. It should be used in conjunction with interfaces specific archetypes. This should be called through the weblab-archetype-plugin and not directly.) 632: remote -> org.ow2.weblab.tools.maven:weblab-archetype-searcher (The Archetype used to generate a stub for searcher. This should be called through the weblab-archetype-plugin and not directly.) 633: remote -> org.ow2.weblab.tools.maven:weblab-archetype-sourcereader (The Archetype used to generate a stub for sourcereader. This should be called through the weblab-archetype-plugin and not directly.) 634: remote -> org.ow2.weblab.tools.maven:weblab-archetype-trainable (The Archetype used to generate a stub for trainable. This should be called through the weblab-archetype-plugin and not directly.) 635: remote -> org.parallelj:parallelj-archetype (ParallelJ is a Java framework for parallel computing. It provides flow modeling and execution. This archetype projects allows to create a project skeleton using ParallelJ.) 636: remote -> org.parallelj:parallelj-archetype-web (ParallelJ is a Java framework for parallel computing. It provides flow modeling and execution. This archetype projects allows to create a project skeleton using ParallelJ.) 637: remote -> org.parancoe:parancoe-pluginarchetype (-) 638: remote -> org.parancoe:parancoe-webarchetype (-) 639: remote -> org.patterntesting:patterntesting-tools (PatternTesting Tools (patterntesting-tools) is the container for tools around PatternTesting like the Ant extensions and Maven plugin.) 640: remote -> org.pustefixframework:pustefix-archetype-application (Pustefix Archetype for Applications) 641: remote -> org.pustefixframework:pustefix-archetype-basic (Pustefix archetype creating a basic application)
59
642: remote -> org.pustefixframework.maven.archetypes:pustefix-archetype-module (Pustefix Archetype for Modules) 643: remote -> org.qooxdoo:qooxdoo-archetype-desktop (An archetype to create a qooxdoo application) 644: remote -> org.qooxdoo:qooxdoo-archetype-gui (An archetype to create a qooxdoo application) 645: remote -> org.quattor.maven:cfg-module (-) 646: remote -> org.quattor.pan:panc-maven-archetype (-) 647: remote -> org.resthub:resthub-jpa-backbonejs-archetype (-) 648: remote -> org.resthub:resthub-jpa-backbonejs-multi-archetype (-) 649: remote -> org.resthub:resthub-mongodb-backbonejs-archetype (-) 650: remote -> org.resthub:resthub-mongodb-backbonejs-multi-archetype (-) 651: remote -> org.rhq:rhq-plugin-archetype (-) 652: remote -> org.rhq.maven:smartgwt-war-archetype (archetype for a Maven project for a SmartGWT web application (WAR)) 653: remote -> org.richfaces.archetypes:richfaces-archetype-kitchensink (-) 654: remote -> org.richfaces.archetypes:richfaces-archetype-simpleapp (-) 655: remote -> org.sadiframework:sadi-service-archetype (-) 656: remote -> org.scala-tools.archetypes:liftweb-archetype-blank (Archetype - blank project for liwftweb) 657: remote -> org.scala-tools.archetypes:liftweb-archetype-hellolift (Archetype - hellolift sample liwftweb application) 658: remote -> org.scala-tools.archetypes:scala-archetype-simple (The maven-scala-plugin is used for compiling/testing/running/documenting scala code in maven.) 659: remote -> org.siqisource.agave:archetypes-quickstart (-) 660: remote -> org.slf4j:slf4j-archetype (The slf4j Archetype) 661: remote -> org.sonatype.flexmojos:flexmojos-archetypes-application (-) 662: remote -> org.sonatype.flexmojos:flexmojos-archetypes-library (-) 663: remote -> org.sonatype.flexmojos:flexmojos-archetypes-modular-webapp (-) 664: remote -> org.sonatype.nexus.archetypes:nexus-plugin-archetype (-) 665: remote -> org.springframework.osgi:spring-osgi-bundle-archetype (Spring OSGi Maven2 Archetype) 666: remote -> org.springframework.ws:spring-ws-archetype (Spring Web Services Maven2 Archetype.) 667: remote -> org.sweble.wikitext:swc-example-basic-archetype (An archetype that creates a simple application which is able to parse a page written in Wikitext and render it as HTML.) 668: remote -> org.sweble.wikitext:swc-example-serialization-archetype (An example project that contains a simple application that is able to parse a page written in Wikitext and serialize it to XML, JSON or binary.) 669: remote -> org.sweble.wikitext:swc-example-xpath-archetype (An archetype that creates a simple application which is able to parse a page written in Wikitext and perform an XPath query on that document.) 670: remote -> org.syncope:syncope-archetype (Syncope archetype) 671: remote -> org.trailsframework:trails-archetype (-) 672: remote -> org.trailsframework:trails-secure-archetype (-) 673: remote -> org.tynamo:tynamo-archetype (-) 674: remote -> org.wicketstuff.scala:wicket-scala-archetype (-) 675: remote -> org.wicketstuff.scala:wicketstuff-scala-archetype (Basic setup for a project that combines Scala and Wicket, depending on the Wicket-Scala project. Includes an example Specs test.) 676: remote -> org.wikbook:wikbook.archetype (-) 677: remote -> org.xaloon.archetype:xaloon-archetype-wicket-jpa-glassfish (-) 678: remote -> org.xaloon.archetype:xaloon-archetype-wicket-jpa-spring (-) 679: remote -> org.xwiki.commons:xwiki-commons-component-archetype (Make it easy to create a maven project for creating XWiki Components.) 680: remote -> org.xwiki.rendering:xwiki-rendering-archetype-macro (Make it easy to create a maven project for creating XWiki Rendering Macros.) 681: remote -> org.zkoss:zk-archetype-component (The ZK Component archetype) 682: remote -> org.zkoss:zk-archetype-webapp (The ZK wepapp archetype) 683: remote -> ru.circumflex:circumflex-archetype (-) 684: remote -> se.vgregion.javg.maven.archetypes:javg-minimal-archetype (-) 685: remote -> sk.seges.sesam:sesam-annotation-archetype (-) 686: remote -> tk.skuro:clojure-maven-archetype (A simple Maven archetype for Clojure) 687: remote -> uk.ac.rdg.resc:edal-ncwms-based-webapp (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains):
Press Enter to choose to default option(233: maven-archetype-quickstart)
60
Maven preguntará por una versión particular.
Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 1: 1.0-alpha-1 2: 1.0-alpha-2 3: 1.0-alpha-3 4: 1.0-alpha-4 5: 1.0 6: 1.1 Choose a number: 6:
Seleccione la opción 6 y pulse la tecla “enter” (6: maven-archetype-quickstart:1.1)
Maven preguntará por los detalles del proyecto:
'groupId': com.curso.jee 'artifactId': pr11 'version': 1.0 'package': com.curso.jee
Proyecto creado
En la carpeta c:\dawsjee\mvn\pr11 se ha creado el proyecto. La estructura del proyecto se muestra en la figura siguiente.
61
Fichero pom.xml
El fichero POM generado POM.xml contiene lo siguiente:
Además, se han creado los ficheros de código fuente App.java y TestApp.java
62
63
Snapshots de Maven Una aplicación software generalmente consta de varios módulos y es común que varios equipos se encarguen de desarrollar los módulos de la aplicación.
Por ejemplo, considere el caso en el que un equipo está trabajando en el “front-end” de una aplicación (interfaz de usuario: app-ui.jar:1.0) y que están utilizando el servicio de datos (data- service.jar:1.0). Puede ocurrir que el equipo que trabaja en el servicio de datos esté realizando la corrección de errores o mejoras de manera que están continuamente modificando la biblioteca al repositorio remoto.
En este escenario, los equipos de desarrollo deben trabajar de la siguiente forma:
• El equipo encargado del módulo “data-service” debe notificar al equipo que desarrolla el módulo “app-ui” cada vez que han realizado una actualización de código. • El equipo encargado del módulo “app-ui” necesita actualizar el fichero pom.xml con el fin de utilizar la última versión liberada
Para evitar este tipo de situaciones se desarrollo el concepto SNAPSHOT (instantánea). ¿Qué es un SNAPSHOT?
Un SNAPSHOT es una versión especial que indica una copia actual de desarrollo. A diferencia de las versiones regulares, Maven busca una nueva versión de la instantánea en un repositorio remoto para cada “build”. Ahora el equipo de servicio de datos liberará un SNAPSHOT de su código actualizando el repositorio. Snapshot contra Versión
En el caso de una Versión, una vez que Maven haya descargado la versión indicada, (por ejemplo la versión 1.0) nunca tratará de descargar una nueva versión 1.0
En el caso de un SNAPSHOT, de forma automática Maven buscará la versión SNAPSHOT (data-service:1.0-SNAPSHOT) cada vez que se realice un build utilizando esta SNAPSHOT. Fichero pom.xml del proyecto app-ui
El proyecto “app-ui” utiliza la versión 1.0-SNAPSHOT de “data-service”
64
El proyecto “data-service” libera la versión 1.0-SNAPSHOT cada vez que realizan pequeños cambios o mejoras.
A pesar de que Maven busca de forma automática la versión SNAPSHOT, es posible forzar a Maven para descargar la última snapshot utilizando la opción -U mvn clean package -U
Automatización de “Build”
La automatización de “Build” define el escenario en donde se verifica que la construcción final de una aplicación, que depende de varios proyectos, se realiza de forma apropiada. Ejemplo
65
Un equipo desarrolla el proyecto “bus-core-api”. Por otro lado, los proyectos “app-web- ui” y “app-desktop-ui” dependen del proyecto “bus-core-api”.
El proyecto “app-web-ui” utiliza la versión “1.0-SNAPSHOT” del proyecto “bus-core- api”
El proyecto “app-desktop-ui” utiliza la version “1.0-SNAPSHOT” del proyecto “bus- core-api”
Proyecto “bus-core-api”
66
Los equipos de desarrollo de los proyectos “app-web-ui” y “app-desktop-ui” necesitan que los procesos “build” deben ser recompilados siempre que haya cambios en el proyecto “bus-core-api”.
Utilizar snapshot asegura que se está utilizando la última versión del proyecto “bus-core- api”, sin embargo para que se recompilen de forma automática los proyectos dependientes es necesario agregar información adicional.
Existen 2 formas de hacer esta recompilación automática:
• Agregar una meta “post-build” al fichero pom.xml del proyecto “bus-core-api” para recompilar los proyectos “app-web-ui” y “app-desktop-ui”. • Utilizar un Servidor de integración continua (Continuous Integration: CI) tipo Hudson para gestionar la automatización de la recompilación. Utilizando Maven las cosas se pueden hacer de la siguiente forma
Actualizar el fichero pom.xml del proyecto “bus-core-api Project”
67
Utilización del Servicio de Integración Continua (Continuous Integration Service) con maven
Utilizando un servidor de CI es la mejor opción, ya que de esta forma los desarrolladores no necesitan que actualizar el pom de su proyecto, cada vez que un nuevo proyecto depende de su proyecto.
Hudson considera cada “proceso Build” como un trabajo independiente.
Una vez que el código de un proyecto es revisado mediante SVN (o cualquier herramienta de administración de la fuente asignada a Hudson), Hudson inicia su trabajo de compilación y una vez que ha terminado este trabajo, automáticamente inicia los trabajos dependientes (otros proyectos dependientes).
En nuestro ejemplo: cuando se actualiza el código fuente de “bus-core-IU” en SVN, Hudson comienza su construcción. Una vez que la construcción es exitosa. Automáticamente, Hudson busca proyectos dependientes y comienza a construir dichos proyectos: “app-web-ui” y “app- desktop-ui”
Gestión de dependencias en Maven
Una de las características básicas de Maven es la gestión de dependencias. La tarea de gestionar dependencias se complica cuando se trata con proyectos multi-modulo (Este tipo de proyectos consisten en cientos de módulos/sub-proyectos). Maven proporciona unalto grado de control de la gestión para este tipo de escenarios. Descubrimiento de dependencias transitivas
68
Es muy común el caso en el que una biblioteca A, depende de otra biblioteca B. Si un tercer proyecto C, quiere utilizar la biblioteca A, se necesita indicar que dicho proyecto C también depende de B.
Maven ayuda a evitar tales requerimientos, ayudando a descubrir todas las bibliotecas que son requeridas. Para lograr esto, Maven lee los ficheros de dependencias (pom.xml), y determina sus dependencias, acto seguido lee los ficheros pom.xml de cada dependencia y así sigue.
De forma, que en el fichero pom.xml de un proyecto, basta con definir las dependencias directas, el resto lo hace de forma automática Maven.
Con dependencias transitivas, el grafo de bibliotecas incluidas puede crecer de forma exponencial, ya que se podrían duplicar librerías. Maven también está preparado para eliminar la repetición de dependencias.
Característica Descripción
Determines what version of a dependency is to be used when multiple Dependency versions of an artifact are encountered. If two dependency versions are at the mediation same depth in the dependency tree, the first declared dependency will be used.
Directly specify the versions of artifacts to be used when they are Dependency encountered in transitive dependencies. For an example project C can include management B as a dependency in its dependencyManagement section and directly control which version of B is to be used when it is ever referenced.
Dependency scope Includes dependencies as per the current stage of the build
Any transitive dependency can be excluede using "exclusion" element. As Excluded example, A depends upon B and B depends upon C then A can mark C as dependencies excluded.
Any transitive dependency can be marked as optional using "optional" Optional element. As example, A depends upon B and B depends upon C. Now B dependencies marked C as optional. Then A will not use C.
Ámbito de las dependencias
El descubrimiento de dependencias transitivas puede ser restringido a un ámbito:
Ámbito Descripción
69
Este ámbito indica que la dependencia esta disponible en le “classpath” de la compile aplicación. Es el valor por defecto.
Esté ámbito indica que la dependencia será proporcionada por el SDK o por provided el servidor Web en tiempo de ejecución.
Esté ámbito indica que la dependencia se necesita en tiempo de ejecución (en runtime el servidor), no siendo requerida en tiempo de compilación.
Este ámbito indica que la dependencia sólo se encuentra disponible en la test compilación de los “tests” y en las fases de ejecución de dichos “tests”.
system Este ámbito indica que basta con indicar la ruta del sistema.
Este ámbito sólo se utiliza cuando la dependencia es de tipo pom. Este ámbito import indica que el POM especificado debe ser remplazado por las dependencias encontradas en el elemento
Gestión de dependencias
Por lo general, tenemos un conjunto de proyectos bajo un proyecto común. En tal caso, podemos crear un fichero pom común con todas las dependencias comunes y luego hacer este pom el padre de los ficheros pom de los sub-proyectos. El ejemplo siguiente le ayudará a entender este concepto
A continuación se indican los detalles del grafo de dependencias mostrado en la figura anterior.
• App-UI-WAR depende de “App-Core-lib” y “App-Data-lib”. • Root es el padre de “App-Core-lib” y “App-Data-lib”. • Root define, en su sección de dependencias, Lib1, Lib2 y Lib3 como dependencias.
App-UI-WAR
70 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
App-Core-lib
App-Data-lib
71
Root
Cuando construimos el proyecto “App-UI-WAR, Maven descubrirá todas las dependencias al navegar el gráfico de dependencia y generara la aplicación.
Del ejemplo presentado, los conceptos clave a comprender son:
• Las dependencias comunes pueden ser colocadas en un solo lugar utilizando el concepto de POM padre. Las dependencias de los proyectos “App-Data-lib” y “App-Core-lib” son listadas en el proyecto “Root” • No es necesario especificar las dependencias Lib1, Lib2 yLib3 como dependencias en “App-UI-WAR”. Maven emplea el mecanismo de dependencias transitivas para incluirlas.
Automatización del proceso de despliegue en Maven
En el desarrollo de proyectos, normalmente un proceso de despliegue consta de los siguientes pasos:
• Registrar el código de los proyectos en desarrollo en un repositorio de código fuente SVN. • Descargar el código del servidor SVN • Construir la aplicación.
72
• Almacenar el resultado de la compilación (fichero WAR o fichero EAR) en una ubicación de red. • Obtener el fichero de la red y desplegarlo en el sitio en producción • Actualizar la documentación de la aplicación. Problema a resolver
Normalmente, el proceso de despliegue de una aplicación es realizada por muchas personas. Un equipo puede ser el encargado de registrar el código, otro puede estra encargado de descargar el código y construir la aplicación, y así sucesivamente. Es muy probable que un paso sea omitido. Por ejemplo, no remplazar el resultado de un proceso “build” en la red, significaría que se despliegue y documente la versión anterior (por segunda vez).
Solución
Automatizar el proceso de despliegue combinando:
• Maven, para ejecutar los procesos de construcción y liberalización (releases) de proyectos. • SubVersion, Repositorio para gestionar el código fuente. • Un gestor de repositorio remoto (Jfrog/Nexus) encargado de mantener los ficheros binarios del proyecto.
Update Project POM.xml
Se puede utilizar el plugin “Release” para crear un proceso de liberación automatizado.
Ejemplo: Fichero pom.xml del proyecto “bus-core-api”
73
Core-Api-Release
En este fichero pom.xml, los elementos importantes son:
Elemento Descripción
Configura la localización del servidor SVN del que Maven obtendrá el SCM código fuente.
Ubicación en donde los ficheros construidos WAR/EAR/JAR serán Repositories almacenados después de que un proceso de construcción haya terminado de forma exitosa.
Se configura el plugin maven-release para automatizar el proceso de Plugin despliegue
Plug-in Maven Release
Maven puede hacer las siguientes tareas utilizando el plugin maven-release. mvn release:clean
Limpia el espacio de trabajo en caso de que el ultimo proceso de “reléase” no fue satisfactorio. mvn release:rollback
Deshace (Rollback) los cambios hechos en el código del espacio de trabajo y en la configuración, en el caso en el que el último proceso de “release” no haya sido realizado de forma satisfactoria. mvn release:prepare
Realiza una gran cantidad de operaciones
74
• Comprueba si existen cambios locales no confirmados o no • Asegura que no existe ninguna dependencia SNAPSHOT • Cambia la versión de la aplicación y elimina SNAPSHOT de la versión para hacer una liberación (reléase). • Actualiza los ficheros pom para SVN. • Ejecuta los casos de prueba • cometer los archivos modificados de POM • etiqueta el código en subversión • Incremento el número de la versión y agrega una SNAPSHOT para liberaciones futuras • Almacena en el servidor SVN los ficheros pom.xml modificados
Aplicación Web Maven
El siguiente ejemplo tiene por objetivo mostrar como gestionar una aplicación web utilizando el sistema de control de versiones de Maven. Creación de una aplicación Web
Para crear una aplicación web basada en Java, vamos a utilizar el plugin “maven- archetype-webapp”. En una consola de comandos, vaya al directorio C:\dawsjee\mvn> y ejecute el siguiente comando Maven:
C:\dawsjee\mvn> mvn archetype:generate -DgroupId=com.curso.jee -DartifactId=pr12
-DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
[INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'archetype'. [INFO] ------[INFO] Building Maven Default Project [INFO] task-segment: [archetype:generate] (aggregator-style) [INFO] ------[INFO] Preparing archetype:generate [INFO] No goals needed for project - skipping [INFO] [archetype:generate {execution: default-cli}] [INFO] Generating project in Batch mode [INFO] ------[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-webapp:1.0 [INFO] ------[INFO] Parameter: groupId, Value: com.curso.jee [INFO] Parameter: packageName, Value: com.curso.jee [INFO] Parameter: package, Value: com.curso.jee [INFO] Parameter: artifactId, Value: pr12 [INFO] Parameter: basedir, Value: C:\dawsjee\mvn [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] project created from Old (1.x) Archetype in dir: C:\dawsjee\mvn\pr12 [INFO] ------[INFO] BUILD SUCCESSFUL [INFO] ------[INFO] Total time: 1 second [INFO] Finished at: Sun Dec 09 12:41:29 CET 2012 [INFO] Final Memory: 24M/221M [INFO] ------
75
Verifique que se ha creado la carpeta pr12:
Maven emplea una estructura de directorios estándar.
Folder Structure Description
pr12 Contiene la carpeta src y el fichero pom.xml
src/main/webapp Contiene el fichero index.jsp y la carpeta WEB-INF
76
Contiene el fichero de configuración de la aplicación WEB: src/main/webapp/WEB-INF web.xml
Contiene los recursos de la aplicación Web (imágenes, ficheros de src/main/resources propiedades, etcétera).
Fichero pom.xml
Con el fin de que la aplicación Web sea operativa, Maven crea el fichero C:\dawsjee\mvn\pr12\src\main\webapp\index.jsp con el siguiente código:
Hello World!
Modifique este fichero para que contenga el siguiente código HTML:
Bienvenido al curso de desarrollo de aplicaciones Web seguras utilizando JEE (dawsjee)
Construcción de la aplicación Web
En una consola de comandos, ejecute el siguiente comando maven:
C:\dawsjee\mvn\pr12>mvn clean package
77
[INFO] Scanning for projects... [INFO] ------[INFO] Building pr12 Maven Webapp [INFO] task-segment: [clean, package] [INFO] ------[INFO] [clean:clean {execution: default-clean}] [INFO] [resources:resources {execution: default-resources}] [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] Copying 0 resource [INFO] [compiler:compile {execution: default-compile}] [INFO] No sources to compile [INFO] [resources:testResources {execution: default-testResources}] [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory C:\dawsjee\mvn\pr12\src\test\resource s [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] No sources to compile [INFO] [surefire:test {execution: default-test}] [INFO] No tests to run. [INFO] [war:war {execution: default-war}] [INFO] Packaging webapp [INFO] Assembling webapp[pr12] in [C:\dawsjee\mvn\pr12\target\pr12] [INFO] Processing war project [INFO] Copying webapp resources[C:\dawsjee\mvn\pr12\src\main\webapp] [INFO] Webapp assembled in[31 msecs] [INFO] Building war: C:\dawsjee\mvn\pr12\target\pr12.war [INFO] ------[INFO] BUILD SUCCESSFUL [INFO] ------[INFO] Total time: < 1 second [INFO] Finished at: Sun Dec 09 12:51:56 CET 2012 [INFO] Final Memory: 15M/222M [INFO] ------
Verifique que se ha creado la carpeta target, en el cual se tiene la aplicación empacada en eun fichero WAR
78
Despliegue de la aplicación Web
Copie el fichero C:\dawsjee\mvn\pr12\target\pr12.war a la carpeta c:\tomcat7\webapps
Inicie Tomcat.
Verifique que la aplicación Web está operativa
Con un navegador abra la URL siguiente:
http://loclahost:8080/pr12/index.jsp
79
Integración de Maven con el IDE Eclipse
Eclipse proporciona un excelente plugin m2eclipse que integra Maven y Eclipse.
Algunas de las características de m2eclipse son listadas a continuación:
• Se pueden ejecutar las metas de maven desde Eclipse. • La salida de los comandos Maven se visualizan dentro de la consola de Eclipse. • Es posible actualizar las dependencias con el IDE. • Es posible lanzar “Maven builds” desde Eclipse. • Resuelve las dependencias desde el espacio de trabajo “workspace” de Eclipse • Automáticamente se descargan las dependencias desde los repositorios remotos • Eclipse proporciona asistentes para crear proyectos Maven Instalación del plugin m2eclipse
Utilice uno de los siguientes enlaces para instalar el plugin m2eclipse:
Eclipse URL
Eclipse 3.5 (Gallileo) Instalación de m2eclipse en Eclipse 3.5 (Gallileo)
Eclipse 3.6 (Helios) Instalación de m2eclipse en Eclipse 3.6 (Helios)
El plugin m2eclipse de Sonatype ya está integrado en Eclipse 3.7 Eclipse 3.7 (indigo) (Indigo)
El plugin m2eclipse de Sonatype ya está integrado en Eclipse 3.8 Eclipse 3.8 (Juno) (Juno)
80
Importar un proyecto maven desde Eclipse
Primero se debe ejecutar el siguiente comando mvn
C:\dawsjee\mvn\pr10>mvn eclipse:eclipse
[INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'eclipse'. [INFO] ------[INFO] Building pr10 [INFO] task-segment: [eclipse:eclipse] [INFO] ------[INFO] Preparing eclipse:eclipse [INFO] No goals needed for project - skipping [INFO] [eclipse:eclipse {execution: default-cli}] [INFO] Using Eclipse Workspace: null [INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAIN ER [INFO] Not writing settings - defaults suffice [INFO] Wrote Eclipse project for "pr10" to C:\dawsjee\mvn\pr10. [INFO] [INFO] ------[INFO] BUILD SUCCESSFUL [INFO] ------[INFO] Total time: < 1 second [INFO] Finished at: Sun Dec 09 13:47:40 CET 2012 [INFO] Final Memory: 12M/220M [INFO] ------
Desde eclipse, seleccionar la opción de Menú File→Import
81
82
83
84
85
86
87
88
89
90
91
92
93
Forma de trabajo: A partir de ahora, vamos a utilizar Eclipse para crear los proyectos Maven:
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109