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/