Jasper


Nesse tutorial vamos mostrar como configuramos a api do Jasper Reports em projetos Maven, só para ficar claro, não vamos mostrar como montamos um relatório utilizando iReports, somente o que é preciso para configurar um projeto com jasper.

O Jasper é um engine que e gera relatórios em diversos formatos como saida (pdf, html, txt, csv, etc...), para isso o mesmo é feito utilizando-se de uma ferramenta chamada iReports, que nada mais é do que um desenhador, ele gera uma saida em formato jrxml, que é o fonte do relatório, que contém todas as informações para que ele seja gerado de acordo com o seu layout, feito no iReport. Mas para que o relatório seja exibido você precisa compilar o .jrxml e gerar o .jasper, que é o arquivo que o engine entende e usa para gerar a saída.

O que vamos mostrar aqui é como fazemos isso usando o plugin do jasper para maven, ligando ele na fase de compilação do projeto. A seguir vamos ver como é simples

1 - Configurando o pom.xml do projeto

Para que possamos utilizar a API do jasper para compilação dos jrxmls, temos que adicionar no pom do projeto a seguinte configuração:

  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>jasperreports-maven-plugin</artifactId>
      <version>1.0-beta-2</version>
      <executions>
        <execution>
          <phase>compile</phase>
          <goals>
            <goal>compile-reports</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <outputDirectory>target/jasper</outputDirectory>
      </configuration>
      <dependencies>
        <dependency>
          <groupId>net.sf.jasperreports</groupId>
          <artifactId>jasperreports</artifactId>
          <version>5.1.0</version>
        </dependency>
      </dependencies>
    </plugin>
	...
  </plugins>

Feito isso, precisamos adicionar a dependência da lib do jasper ao projeto, pois no momento da compilação do .jrxml ele utiliza algumas classes desse pacote.

<dependencies>
    <dependency>
      <groupId>net.sf.jasperreports</groupId>
      <artifactId>jasperreports</artifactId>
      <version>5.1.0</version>
    </dependency>
	...
  </dependencies>

Se você não fizer isso, será apresentado vários erros de compilação.

Na configuração do plugin solicitamos que na fase de compilação do projeto seja iniciada o goal compile-reports do plugin do jasper e na tag outputDirectory direcionamos o .jasper gerado para a pasta: target/jasper

Entendida essa parte, praticamente está tudo certo, já podemos compilar o programa


2 - Compilando

Não tem muito segredo, basta digitar no prompt o comando

mvn package

Será gerado na pasta target a saida, se olharmos vamos ver que foi criada uma pasta chamada jasper com o resultado da compilação na pasta

Também será gerado o jar, só que se abrirmos o jar o arquivo jasper não foi empacotado, para isso vamos adicionar uma configuração para que o jar plugin do maven resolva e empacote a pasta jasper dentro do .jar do projeto que será gerado.

  <plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.2</version>
    <configuration>
      <classesDirectory>target</classesDirectory>
      <includes>
        <include>**/*.class</include>
        <include>**/*.jasper</include>
      </includes>
    </configuration>
  </plugin>

Nota: Se você fizer o download do exemplo no final da página, e abrir o pom.xml, verá que temos a configuração do maven-jar-plugin, que filtra o que queremos que seja incluído dentro do jar. Se você quiser fazer um teste, comente o plugin jar do pom.xml, execute o comando mvn package e em seguida abra o .jar gerado, e depois volte a configuração e, execute novamente mvn package e verá que a pasta jasper estará dentro do .jar.


Conclusão

O objetivo aqui não é mostrar como se desenha um relatório e sim a configuração do plugin do maven para nossos projetos e como fazemos para incluir os arquivos gerados dentro do nosso empacotamento, que é basicamente o necessário para utilizarmos nos projetos.


Download

Caso queira ver o exemplo funcionando, você pode fazer o download do mesmo, clicando em: Exemplo do tutorial Jasper.


Referências

http://mojo.codehaus.org/jasperreports-maven-plugin/