我不得不将非标准字体(称为“Ovo”)添加到我正在处理的 JasperReports 项目中,并按照所有指示(例如此处)将字体从 iReport 导出到 .jar 并添加它到我在 Eclipse 中的构建路径。当我用 eclipse 编译项目时,这很好用。
现在我正在转向生产,并一直在使用mvn clean install命令在命令行上使用 Maven (v3.0.4) 编译项目,因此 eclipse 完全超出了构建周期。我已将字体 jar 安装到我的本地 maven 存储库中,并将其作为依赖项添加到我的 pom 中(类似于此处所述),但随后我运行程序,当生成使用该字体的文档的代码执行时,我得到一个JRFontNotFoundException。
我检查了我的本地 repo 和我的 pom,并确保 jar 在那里并且 pom 正确识别它。我还使用mvn dependency:build-classpath检查了我的 maven 构建路径,还查看了我的mvn install输出。字体 jar 的路径出现在两者中,并且没有抛出任何错误。
我没主意了。为什么在 CLI 上使用 maven 编译项目时这个字体 jar 不起作用,但在 eclipse 中编译时没有问题?(它也是 Eclipse 中的一个 maven 项目,所以 .classpath 几乎只是说“使用 maven”)
这是我用来在本地存储库中安装 jar 的命令:
mvn install:install-file -Dfile=jFreeChartFonts.jar -DgroupId=com.example -DartifactId=jFreeChartFont -Dversion=0.0.1 -Dpackaging=jar
这是 pom.xml 中的依赖声明:
<dependency>
<groupId>com.example</groupId>
<artifactId>jFreeChartFonts</artifactId>
<version>0.0.1</version>
</dependency>
我也尝试将范围设置为运行时而不是编译,但这没有什么区别。