java - 使用 Maven 编译 JRXML 时出现 ClassNotFoundException

标签 java maven jasper-reports

我在 JRXML 中使用我的应用程序的一些对象A,如下所示:

<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="ResportTest" pageWidth="842" pageHeight="595" orientation="Landscape" whenNoDataType="AllSectionsNoDetail" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.5394743546921226"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<import value="com.test.app.EnumOne"/>
<import value="com.test.app.Test1DTO"/>
<import value="com.test.app.Test1Sub1DTO"/>
<import value="com.test.app.Test1Sub2DTO"/>
<import value="com.test.app.Test2DTO"/>
<import value="com.test.app.EnumTwo"/>

使用 iReport,我已将我的 target/classes 目录添加到类路径中,一切都OK。

现在,当我尝试使用 maven(mvn clean install)编译 JRXML 时,出现错误:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.949 s
[INFO] Finished at: 2015-04-10T08:17:26+01:00
[INFO] Final Memory: 39M/112M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:jasperreports-maven-plugin:1.0-beta-1:compile-reports (default) on project projectOne: Error co
mpiling report design : C:\ws\projectOne\src\main\resources\jasper\jrxml\ReportTest.jrxml: Error compiling report d
esign : C:\ws\projectOne\src\main\resources\jasper\jrxml\ReportTest.jrxml : Report design not valid :
[ERROR] 1. java.lang.ClassNotFoundException: com.test.app.EnumOne
[ERROR] 2. java.lang.ClassNotFoundException: com.test.app.EnumTwo
[ERROR] 3. java.lang.ClassNotFoundException: com.test.app.Test2DTO

当我的构建失败时,maven 已经编译了 target/classes 中的所有类。 我不明白为什么 maven 可以找到 EnumOne、EnumTwo 和 Test2DTO,却找不到另一个。

这是我的 jasper 的 pom.xml:

              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jasperreports-maven-plugin</artifactId>
                <version>${version.jasperreports-plugin}</version>
                <configuration>
                    <sourceDirectory>src/main/resources/jasper/jrxml</sourceDirectory>
                    <outputDirectory>src/main/resources/jasper/jasper</outputDirectory>
                    <compiler>net.sf.jasperreports.engine.design.JRJavacCompiler</compiler>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile-reports</goal>
                        </goals>
                        <phase>compile</phase>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>net.sf.jasperreports</groupId>
                        <artifactId>jasperreports</artifactId>
                        <version>${version.jasperreports}</version>
                    </dependency>
                </dependencies>
            </plugin>

最佳答案

好的,我刚刚找到了解决方案。 Maven 使用版本 1.0-beta-1 的依赖项 jasperreports-maven-plugin。我将依赖项升级到 1.0-beta-2,它现在可以工作了!

关于java - 使用 Maven 编译 JRXML 时出现 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29554957/

相关文章:

java - 在 Maven 中合并外部 jar 依赖项的 javadoc URL

Java-Eclipse 与 Spark 的依赖错误

hadoop - Jaspersoft Hive 日期参数问题

mysql - 硬编码值工作正常,但是当从参数传递时,在 i-Report 中不会给出相同的结果

java - 类声明错误(由 ClassNotFoundException 引起的 NoClassDefFoundError)

java - HQL 查询中的语法错误 "unexpected token"

java - 为什么壁纸设置有异常错误?

java - 在线裁判的问题处理输入

java - 重复大小写标签

java - Spring MVC - 使用输出流和 HttpServletResponse 下载 PDF