As ferramentas utilizadas eram: maven 2 e iReport 3.7.1
Ao compilar o relatório via iReport tudo funcionava, mas quando pedia para o maven fazer o serviço, aparecia uma infeliz mensagem: "Language "groovy" not supported by this report compiler." e logo abaixo "Expecting "java" instead."
Já estava desistindo e regredindo versões por causa da mensagem quando resolvi investir um pouco de tempo para pesquisar. Determinei um time-box para não ficar viajando muito e por fim encontrei a seguinte solução.
Primeiramente abri o arquivo jrxml e removi o trecho language="groovy". Mandei compilar no maven e funcionou, mas fiquei pensando se teria que fazer isto para todos os relatórios que tinham pela frente. Estava dentro do meu time-box e resolvi pesquisar mais.
Primeiro pesquisei porque eu usaria o groovy. Resumidamente, o groovy foi adicionado ao jasper para simplificar as expressões colocadas nos relatórios, ou seja, o que antes eu faria new Double($F{f1}.doubleValue() +
$F{f2}.doubleValue()) com o groovy eu faço $F{f1} + $F{f2}. Quer argumentação maior que esta?
Adicionei o groovy-all-1.7.1 às dependencias do plugin do jasper e na configuração do plugin apontei o compilador JRGroovyCompiler.
Fim.
A configuração ficou assim:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jasperreports-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compile-reports</goal>
</goals>
</execution>
</executions>
<configuration>
<compiler>net.sf.jasperreports.compilers.JRGroovyCompiler</compiler>
</configuration>
<dependencies>
<dependency>
<groupId>jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>3.7.1</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>1.7.1</version>
</dependency>
</dependencies>
</plugin>
muito util seu texto
ResponderExcluir