gpt4 book ai didi

java - 从 target/jasper 读取 .jasper 文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:35:31 25 4
gpt4 key购买 nike

我正在尝试使用 jasperreports-maven-plugin 来使用 Jasper。

因此,您在目录 src/main/jasperreports 中创建 .jrxml,然后插件对其进行编译并在 target/jasper 中创建一个 .jasper 文件。到目前为止,这是有效的。

现在我想将这个 .jasper 文件读入 Java 类以填充报告。这就是我的问题所在。如何从 target/jasper 访问这个 .jasper 文件?

我想我需要将它添加为我的 pom.xml 中的附加资源目录:

  <build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>target/jasper</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jasperreports-maven-plugin</artifactId>
<configuration>
<outputDirectory>${project.build.directory}/jasper</outputDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>compile-reports</goal>
</goals>
</execution>
</executions>
...

然后像这样使用 getResource 获取它:

URL resource = getClass().getResource("/target/jasper/DataSourceReport.jasper");

但是,这会返回 null。DataSourceReport.jasper 文件在我的项目中,位于 target/jasper 下,但似乎无法找到它。

谁能告诉我我做错了什么或者为什么这不起作用?

最佳答案

谢谢。这确实是我忽略的。资源元素仅确保该文件夹作为资源导入 Eclipse 中,但我需要添加另一个 Maven 插件来指定多个资源文件夹以添加到创建的 jar 中。我以为这是由资源元素完成的。

这是我添加的以使其工作:

    <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${basedir}/src/main/resources</source>
<source>${project.build.directory}/jasper</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>

关于java - 从 target/jasper 读取 .jasper 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8385964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com