Documentando con Maven

22
Documentando con Maven 28 de Abril de 2011 JUGAR Meetup, Buenos Aires http://www.zaubersoftware.com ldap://cn=Juan F. Codagnone, o=Zauber, dc=Argentina http://juan.zaubersoftware.com/ http://twitter.com/juam

description

This presentation describes how support documentation with maven.

Transcript of Documentando con Maven

Page 1: Documentando con Maven

Documentando con Maven

28 de Abril de 2011JUGAR Meetup, Buenos Aires

http://www.zaubersoftware.com

ldap://cn=Juan F. Codagnone, o=Zauber, dc=Argentina

http://juan.zaubersoftware.com/

http://twitter.com/juam

Page 2: Documentando con Maven

Agenda

Introducción

Docbook

Maven Doxia

01.

03.

01|22

02.

03.

http://www.zaubersoftware.com

Page 3: Documentando con Maven

Introducción

Doc & Maven

01.

02|22http://www.zaubersoftware.com

Page 4: Documentando con Maven

¿Que espero de un entorno de documentación?

Doc & Maven

03|22

• Facilidad de edición• Facilidad para seguir los cambios• Direccionabilidad a porciones de la documentación

http://www.zaubersoftware.com

Page 5: Documentando con Maven

Opción I: Docs o similares

Doc & Maven

04|22http://www.zaubersoftware.com

• Dificultad para editar el archivo de forma liviana (editor simple de texto)

• La comparación de cambios entre revisiones se hace con herramientas custom (las mismas de edición)o (no es tan amigable para el SCM)

• Poca direccionabilidad al interior del documento• Es WYSIWYG

Page 6: Documentando con Maven

Opción II: Wikis

Doc & Maven

05|22http://www.zaubersoftware.com

• Facilidad de Cambioo ...pero tengo que estar online

• Facilidad para direccionar a partes de la doc (anchors)• Facilidad de publicación

o está online• Es más dificultoso de exportar a formatos lineales

o pdfs, wordso newbies se pierden en el grafo de documentos (vs guía

de referencia lineal)• Cada motor wiki es un mundo

o Para obtener buenos resultado, seguramente requiere de $$ en licencias

• En general no es WYSWYG

Page 7: Documentando con Maven

Opción III: Maven

Doc & Maven

07|22http://www.zaubersoftware.com

• Documentación cerca del código• Facilmente editable • No es WYSWYG• Dos tipos de documentaciones

o Estilo WIKI (grafo de documentos)o Estilo Guía de referencia

Page 8: Documentando con Maven

Docbook & Maven

Doc & Maven

02.

08|22http://www.zaubersoftware.com

Page 9: Documentando con Maven

Docbook: Intro

Doc & Maven

09|22http://www.zaubersoftware.com

• http://www.docbook.org• Formato basado en XML

o version 5 basado XSDo version 4.x basado DTD

• Salida:o PDFo HTML únicoo HTML

• Ejemplos de salida:o Guía de referencia de Springo Guía de referencia de Hibernateo Guía de referencia de Zauber Commons

Page 10: Documentando con Maven

Ejemplo salida HTML

Doc & Maven

10|22http://www.zaubersoftware.com

Page 11: Documentando con Maven

Ejemplo salida PDF

Doc & Maven

11|22http://www.zaubersoftware.com

Page 12: Documentando con Maven

Editando docbook desde el eclipse

Doc & Maven

12|22http://www.zaubersoftware.com

Page 13: Documentando con Maven

Editando desde el eclipse: autocomplete

Doc & Maven

13|22http://www.zaubersoftware.com

Page 14: Documentando con Maven

Configurando y ejecutando

Doc & Maven

14|22http://www.zaubersoftware.com

• Se requiere un pom.xml con la configuración de plugins (es bastante larga la configuración)

• Opcionalmente se puede tener un módulo de estilos para cambiar el css y el formato de las salidas html y pdf

• Ejemplo: (basado en los proyectos de JBOSS)– git clone https://github.com/zaubersoftware/commonsdocumentation

– cd commonsdocumentantion

– mvn n install # realizaremos la instalacion en varios pasos

– cd style       # debido a un bug en el plugin

– mvn  install  

– cd ../reference # los fuentes están en enUS.

– mvn             # un unico punto de entrada + includes

Page 15: Documentando con Maven

Maven Doxia

Doc & Maven

03.

15|22http://www.zaubersoftware.com

Page 16: Documentando con Maven

Maven Doxia: Introducción

Doc & Maven

16|22http://www.zaubersoftware.com

• http://maven.apache.org/doxia/o "... Doxia is a content generation framework which aims to provide its users

with powerful techniques for generating static and dynamic content: Doxia can be used in web-based publishing context to generate static sites..."

• Usado extensivamente dentro de maven• Formatos:

o APT (Almost Plain Text) / XDoc / XHTMLo TWiki / Confluence / XWikio Simplified DocBooko FML (FAQ Markup Language), o FO, iText, LaTeX, RTF

• Genera archivos estáticos: Solo requiere servidor estático de archivos en su publicación.

Page 17: Documentando con Maven

Maven Doxia: Sinks y Parser

Doc & Maven

17|22http://www.zaubersoftware.com

• Útil para generar documentación programaticamente• Parsers

o Leen un formato y emiten mensajes hacia los Sinks nueva sección nuevo parrafo empieza texto resaltado

• Sinkso Recibe eventos y los traduce a un formato

• Ejemplo:o Parser TWiki + Parser FML emiten a Sink XHTML

Obtenemos un sitio web!

Page 18: Documentando con Maven

Maven Doxia In Action

Doc & Maven

18|22http://www.zaubersoftware.com

Ejemplo $ git clone https://github.com/zaubersoftware/garfio/

$ cd site

$ mvn site

$ firefox target/site/index.html

¿Qué ver?● pom.xml (configuración de modulos extras en el plugin

site)● src/site/site.xml (barra de navegación y skin)● src/site/<parser>/fooo.<parser>

Page 19: Documentando con Maven

Maven Doxia In Action

Doc & Maven

19|22http://www.zaubersoftware.com

Page 20: Documentando con Maven

Maven Doxia In Action: Escribimos en la wiki la doc

Doc & Maven

20|22http://www.zaubersoftware.com

Page 21: Documentando con Maven

Maven Doxia In Action: Publicamos estaticamente

Doc & Maven

21|22http://www.zaubersoftware.com

Page 22: Documentando con Maven

¿Preguntas?

Doc & Maven

:-)

22|22http://www.zaubersoftware.com