lunedì 29 aprile 2013

Script Ant per compilazione jasper report con groovy

In una web app con una serie di file jrxml creati con Groovy ecco uno script per la compilazione dei jrxml in modo da avere sempre i .jasper aggiornati.
I report sono stati creati con groovy, nel caso in cui fossero stati realizzati con Java standard allora si averebbe nella jrc come compiler la classe net.sf.jasperreports.engine.design.JRJdtCompiler invece della net.sf.jasperreports.compilers.JRGroovyCompiler.
I jrxml si trovano all'interno di una web app , sotto la directory reports.


 <project name="myProject" basedir="../" >
 <property file="ant/build.properties"/>
<target name="COMPILE-JASPER">
  <echo>Clean file jasper</echo>
  <delete verbose= "true" >
   <fileset dir="${webapp.target}/questionario" includes="*.jasper"/>
  </delete>
  <taskdef name="jrc" classname="net.sf.jasperreports.ant.JRAntCompileTask">
   <classpath refid="compile.classpath"/>
  </taskdef>
  <jrc srcdir ="${webapp.target}/questionario"
          destdir="${webapp.target}/questionario"
          keepjava="false"
          xmlvalidation="true"
          excludes="**/test/*.java,**/Test*.java,*.bak"
       compiler="net.sf.jasperreports.compilers.JRGroovyCompiler">
   <classpath refid="compile.classpath"/>
  </jrc>
 </target>

Lo script iniziale prevede la definizione di un file di properties build.properties dove sono definiti i valori del classpath e delle variabili a cui ci si riferisce nello script.



<?xml version="1.0" encoding="UTF-8"?>
<project>
 <property name="build.dir" value="${basedir}/build" />
 <property name="doc.dir" value="${basedir}/doc" />
 <property name="src" value="${basedir}/src" />
 <property name="test" value="${basedir}/test" />
 <property name="webapp.target" value="${basedir}/WebContent" />
 <property name="webapp.conf" value="${webapp.target}/conf" />
 <property name="webinf.dir" value="${webapp.target}/WEB-INF" />
 <property name="web.lib" value="${webinf.dir}/lib" />
 <property name="lib.lib" value="${basedir}/libProperties" />
 <property name="javac.debug" value="true" />
 <property name="compile.deprecation" value="true" />
 <property name="build.compiler" value="modern" />
 <property name="junit.fork" value="yes" />
 <property name="junit.showoutput" value="true" />
 <property environment="env" />
 <property name="env.COMPUTERNAME" value="${env.HOSTNAME}" />
 <property name="tomcat.home" value="${env.CATALINA_HOME}" />
 <property name="webapp.name" value="gianos-pro" />
 <property name="webapp.war" value="${webapp.name}.war" />
 <property name="webapp.ear" value="${webapp.name}.ear" />
 <property name="compile.jvm" value="1.6" />
 <property name="compile.debug" value="true" />
 <property name="compile.deprecation" value="false" />
 <property name="compile.optimize" value="false" />
 <path id="compile.classpath">
 .... altri jar utili al progetto .....
  <pathelement location="${web.lib}/jasperreports-4.7.0.jar"/>
  <pathelement location="${web.lib}/groovy-all-1.7.5.jar"/>
  <pathelement location="${web.lib}/jdt-compiler-3.1.1.jar"/>
  <pathelement location="${build.dir}/classes"/>
 </path>
</project>

Nessun commento:

Posta un commento