Como o @fernando disse, utilizar o Jasper + Ireport é simples. Basta construir um relatório no Ireport normalmente e exportá-lo para o formato jrxml ou jasper. Para utilizar este relatório no Grails. Basta adicionar o plugin citado pelo @fernando. Para instalá-lo deve-se inserir a seguinte linha no bloco do plugin do arquivo BuildConfig:
compile ":jasper:1.7.0"
Após fazer isto, os relatórios que você deseja adicionar na sua aplicação Grails devem estar no diretório: web-app/reports/. Este é o diretório padrão, você pode mudar caso deseje, só ver a documentação.
Portanto, caso você crie um relatório no ireport com o seguinte parâmetro:
<parameter name="status" class="java.lang.String"/>
. Insira ele no diretório de relatórios citado acima.
Para passar este parâmetro ao relatório, você deve utilizar a seguinte tag na página GSP:
<g:jasperReport jasper="Projeto_Status_Relatorio" format="PDF" name="Relatório de Projeto Status = CADASTRADO">
+ <input type="hidden" name="status" value="CADASTRADO" />
+ </g:jasperReport>
O atributo jasper é o nome do relatório que está dentro da pasta web-app/reports. Já o atributo deve ser definido dentro da tag. Aquele input de tipo hidden é o parâmetro que estou enviando. Ele poderia ser de outros tipos também, exemplo text.
Espero ter ajudado,
Att,
André Cruz.