Как мне скомпилировать jrxml, чтобы получить яшму? - PullRequest
63 голосов
/ 16 декабря 2010

В ant, как мне скомпилировать файл .jrxml , чтобы получить .jasper ?

Ответы [ 10 ]

61 голосов
/ 22 декабря 2010

Существует три способа компилировать jrxml в jasper.

  1. Вы можете выполнить прямую компиляцию с помощью кнопки компиляции (логотип молотка) в конструкторе iReport.

  2. Вы можете использовать ant для компиляции, как показано в 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>
    

    Ниже приведена задача компиляции отчета для моего текущего проекта.

    alt text

    дополнение от Даниэль Риковски :

  3. Вы также можете использовать класс JasperCompileManager для компиляции из вашего 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
    
22 голосов
/ 23 октября 2014

Для всех, кто сталкивался с этим вопросом и использует Jaspersoft Studio (который, я думаю, заменяет iReports; он очень похож, но все еще бесплатен, основан только на затмении), поищите значок «Отчет о компиляции»в верхней части области редактора вашего файла .jrxml.Его значок, первый в этой строке значков, представляет собой файл с двоичными числами на нем (по крайней мере, в версии 5.6.2): ​​

Jaspersoft Studio - compile report

При нажатии на этот значок будет создан.файл jasper в том же каталоге, что и файл .jrxml.

14 голосов
/ 21 января 2013

с Maven это автоматически:

<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>

9 голосов
/ 31 августа 2011

Я использую iReport 2.0.2 для создания файла яшмы.

Я не нашел логотип молотка, но у меня есть меню create > compile в строке меню, которое создает файл яшмыв папке программных файлов iReport:

Журналы IReport: «Компиляция по сравнению с другими .... \ SalesOrderItemsSubreportA4.jasper -> C: \ Program Files \ JasperSoft \ iReport-2.0.2 \ SalesOrderItemsSubreportA4.java"

5 голосов
/ 08 июня 2015

Используя конструктор iReport 5.6.0, если вы хотите скомпилировать несколько файлов jrxml без предварительного просмотра - перейдите в Инструменты -> Инструмент массовой обработки.Выберите тип разработки для «Компиляция файлов», выберите папку, в которой хранятся все ваши отчеты jrxml, и скомпилируйте их в пакете.

4 голосов
/ 30 ноября 2015

В затмении,

  • Установка Jaspersoft Studio для затмения.
  • Щелкните правой кнопкой мыши файл .jrxml и выберите Open with JasperReports Book Editor
  • Откройте вкладку Design для файла .jrxml.
  • В верхней части окна вы можете увидеть значок Compile Report.
4 голосов
/ 31 августа 2013

Если вы используете iReport, вы можете легко это сделать.

  1. Когда вы нажимаете на превью, он автоматически компилируется.
  2. Существует возможность сделать это полностью. Вы можете скомпилировать, выбрав страницу, затем щелкните правой кнопкой мыши, чтобы получить опцию компиляции.
3 голосов
/ 22 августа 2013

Использование версии 5.1.0:

Просто нажмите «Просмотр», и он создаст для вас YourReportName.jasper в том же рабочем каталоге.

2 голосов
/ 03 мая 2018
  1. Откройте файл .jrxml в iReport Designer.
  2. Откройте Инспектор отчетов (Окно -> Инспектор отчетов).
  3. Щелкните правой кнопкой мыши имя отчета в верхней части инспектора и выберите «Скомпилировать отчет».

Вы также можете просмотреть свой отчет, чтобы он автоматически компилировался.

0 голосов
/ 21 апреля 2018
 **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>
...