Feb 17

Maven, Jasperreports y MySQL

Hace tiempo que tengo ganas de meterme con jasperreports. Es una herramienta que he visto que usa mucha gente y de la que no tengo ni idea. Además, en su día Pablo metió un pequeño tutorial en la Chuwiki y se convirtió rápidamente en uno de los más visitados. Así que dicho y hecho, me puse con el ejemplo de ese tutorial a ver si sacaba algo en claro y a jugar un poco.

Lo primero que me dio pereza cuando me puse, fueron los jar que tenía que bajarme. En la página de jasperreports vienen tres jar que, ante la duda, se bajan los tres. En el tutorial de la Chuwiki, al final, pone otros jar necesarios, de apache-commons y similares, que también tendría que ir bajando. Todo esto me hizo retrasar el comienzo … hasta que se me ocurrió una genial idea.

Jasperreports y todos esos jar de apache son libres, así que posiblemente estén disponibles para maven. Fui a google y busqué ibibilio jasperreports. ibiblio es el repositorio de jars de maven, Poniendo eso en google y el nombre del jar que deseas, es fácil de encontrar. Así fué. Lo encontré y dije, la mejor forma de bajarse todo lo necesario es con maven.

Cree un proyecto maven así

mvn archetype:create -DgroupId=chuidiang.ejemplos.jasper -DartifactId=jasper -Dpackaging=jar

Esto me creo la esctructura de directorios para mi proyecto/ejemplo y el fichero pom.xml, en el que se describe el proyecto. Edité el pon.xml y le añadí la dependencia con jasperreports y de paso con mysql, que me haría falta.

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.0.4</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>1.3.0</version>
        <scope>compile</scope>
    </dependency>

Los nombres exactos de groupId, artifactId y versión los obtuve leyendo los ficheros .pom encontrados en internet: el de jasperreports y el de mysql.

Una vez hecho, me bastó compilar, sin haber hecho nada de código, con mvn compile para que maven se encargara solito de bajarme esos dos jar y todos los jar de los que estos dos dependen. Estos son todos los jar que se bajaron

GroupId ArtifactId Version Classifier Type Optional
avalon-framework avalon-framework 4.1.3 - jar
com.lowagie itext 1.3.1 - jar
commons-beanutils commons-beanutils 1.7.0 - jar
commons-collections commons-collections 2.1 - jar
commons-digester commons-digester 1.7 - jar
commons-logging commons-logging 1.0 - jar
eclipse jdtcore 3.1.0 - jar
javax.servlet servlet-api 2.3 - jar
jfree jcommon 1.0.0 - jar
jfree jfreechart 1.0.1 - jar
log4j log4j 1.2.12 - jar
logkit logkit 1.0.1 - jar
xml-apis xml-apis 1.3.02 - jar

Son todas las dependencias mezcladas de jasperreports y de mysql. Supongo que son todas las dependencias necesarias para los casos más raros de uso que se nos ocurran de jasperreports, porque veo cosas como javax.servlet y jfreechart, que imagino servirán para algún tipo de reporte publicable en jsp o con gráficos.

En fin, lo de maven tiene algunas pegas, pero en ocasiones es una maravilla. Buscar y bajarme todos esos jar a mano me habría llevado un buen rato. Además de evitarme varios ensayo y error para ver si me faltaba alguno (de mano no sabes a ciencia cierta qué jar necesitas exactamente, hasta que compilas y te lo dice el compilador). Además, los jar habrían acabado en un directorio perdido del que luego no me acordaría. Ahora están en un repositorio que maven organiza en mi pc y él sí se acordará en otros proyectos de dónde están. Y el proyecto de eclipse para la prueba lo he creado con un comando simple, con todos las dependencias añadidas y todo

mvn eclipse:eclipse

Una pequeña maravilla.

Entradas relacionadas:

  • No hay entradas relacionadas.

2 Responses to “Maven, Jasperreports y MySQL”

  1. alas Says:

    you could have make a rar so others could dowload, I to don’t like to search, doesn’t help but thanks anyways

  2. Chuidiang Says:

    Hola:

    Mi intención no era hacer un rar para bajarse, sino comentar cómo maven ayuda a solucionar el tema de dependencias, sobre todo en algo con tanta dependencia como jasperreports.

    Se bueno.

Leave a Reply