我必须在 JasperReports 的JRXML文件中导入一些自定义的 Java 类。
我可以使用
<import value="org.ga.jasper.sample.MyCustomClass"/>
这非常好用,我可以运行这个jrxml并测试我的代码。
当我想使用 jasperreports-maven-plugin 将其预编译为.jasper文件时出现问题。
在进行构建时,它抱怨说它找不到我的包,因此导入无效。
package org.ga.jasper.sample does not exist
import org.ga.jasper.sample.MyCustomClass;
仅供参考,我的 Java 代码和 .jrxml 位于相同的maven模块中但位于不同的文件夹中。
以下是我的插件标记
中的代码<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jasperreports-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compile-reports</goal>
</goals>
</execution>
</executions>
<configuration>
<sourceDirectory>src/main/resources/jasper</sourceDirectory>
<outputDirectory>${project.build.directory}/jasper</outputDirectory>
<compiler>net.sf.jasperreports.engine.design.JRJavacCompiler</compiler>
</configuration>
<dependencies>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>4.5.1</version>
</dependency>
</dependencies>
</plugin>
答案 0 :(得分:4)
默认情况下,插件在编译当前模块的类之前在generate-resources阶段运行。您可以将插件更改为在编译阶段运行。请参阅页面底部的注释:
另外,请看这个类似的问答:
答案 1 :(得分:1)
这就是我解决问题的方法。添加阶段
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jasperreports-maven-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>compile-reports</goal>
</goals>
</execution>
</executions>
<configuration>
<sourceDirectory>src/main/resources/jasper</sourceDirectory>
<outputDirectory>${project.build.directory}/jasper</outputDirectory>
<compiler>net.sf.jasperreports.engine.design.JRJavacCompiler</compiler>
</configuration>
<dependencies>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>4.5.1</version>
</dependency>
</dependencies>
</plugin>