Dans ant, comment compiler un . Jrxml fichier pour obtenir un . jasper ?
Il existe trois façons de compiler jrxml en jasper.
Vous pouvez effectuer une compilation directe via le bouton de compilation (logo du marteau) sur iReport Designer.
Vous pouvez utiliser ant pour compiler comme indiqué dans le Ant Compile Sample .
<target name="compile1">
<mkdir dir="./build/reports"/>
<jrc
srcdir="./reports"
destdir="./build/reports"
tempdir="./build/reports"
keepjava="true"
xmlvalidation="true">
<classpath refid="runClasspath"/>
<include name="**/*.jrxml"/>
</jrc>
</target>
Vous trouverez ci-dessous la tâche de compilation du rapport sur mon projet actuel.
ajout de Daniel Rikowski :
Vous pouvez également utiliser la classe JasperCompileManager pour compiler à partir de votre code Java).
JasperCompileManager.compileReportToFile(
"our_jasper_template.jrxml", // the path to the jrxml file to compile
"our_compiled_template.jasper"); // the path and name we want to save the compiled file to
Si vous rencontrez cette question qui utilise Jaspersoft Studio (qui, je pense, remplace iReports; il est assez similaire, toujours gratuit, basé uniquement sur Eclipse), recherchez l'icône "Compile Report" en haut. de la zone d'édition de votre fichier .jrxml. Son icône, la première de cette ligne d'icônes, est un fichier contenant des nombres binaires (du moins dans la version 5.6.2):
En cliquant sur cette icône, le fichier .jasper sera généré dans le même répertoire que le fichier .jrxml.
avec maven c'est automatique:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jasperreports-maven-plugin</artifactId>
<configuration>
<outputDirectory>target/${project.artifactId}/WEB-INF/reports</outputDirectory>
</configuration>
<executions>
<execution>
<phase>prepare-package</phase>
<inherited>false</inherited>
<goals>
<goal>compile-reports</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>3.7.6</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<type>jar</type>
</dependency>
</dependencies>
J'utilise iReport 2.0.2 pour générer le fichier jasper.
Je n'ai pas trouvé le logo du marteau, mais j'ai un menu create > compile
dans la barre de menus qui créent le fichier jasper dans le dossier des fichiers du programme iReport:
IReport Logs: "Compilation vers le fichier ....\SalesOrderItemsSubreportA4.jasper -> C:\Program Files\JasperSoft\iReport-2.0.2\SalesOrderItemsSubreportA4.Java"
Si vous souhaitez compiler plusieurs fichiers jrxml sans prévisualisation, utilisez iReport designer 5.6.0. Cliquez sur Outils -> Outil de traitement massif. Sélectionnez Type d'élaboration en tant que "Compiler les fichiers", sélectionnez le dossier dans lequel tous vos rapports jrxml sont stockés et compilez-les en un lot.
Si vous utilisez iReport, vous pouvez facilement le faire.
Dans Eclipse,
.jrxml
Et sélectionnez Open with JasperReports Book Editor
Design
pour le fichier .jrxml
.Compile Report
.Utilisation de la version 5.1.0:
Cliquez simplement sur preview pour créer un fichier YourReportName.jasper dans le même répertoire de travail.
Vous pouvez également prévisualiser votre rapport pour qu'il soit automatiquement compilé.
**A full example of POM file**.
Command to Build All **Jrxml** to **Jasper File** in maven
If you used Eclipse then right click on the project and Run as maven Build and add goals antrun:run@compile-jasper-reports
compile-jasper-reports is the id you gave in the pom file.
**<id>compile-jasper-reports</id>**
<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test.jasper</groupId>
<artifactId>testJasper</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>TestJasper</name>
<url>http://maven.Apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.3.0</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.6</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>compile-jasper-reports</id>
<goals>
<goal>run</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<target>
<echo message="Start compile of jasper reports" />
<mkdir dir="${project.build.directory}/classes/reports"/>
<echo message="${basedir}/src/main/resources/jasper/jasperreports" />
<taskdef name="jrc" classname="net.sf.jasperreports.ant.JRAntCompileTask"
classpathref="maven.compile.classpath" />
<jrc srcdir="${basedir}/src/main/resources/jasper/jasperreports" destdir="${basedir}/src/main/resources/jasper/jasperclassfile"
xmlvalidation="true">
<classpath refid="maven.compile.classpath"/>
<include name="**/*.jrxml" />
</jrc>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>