【发布时间】:2013-11-04 19:34:25
【问题描述】:
我不得不将非标准字体(称为“Ovo”)添加到我正在处理的 JasperReports 项目中,并按照所有指示(例如 here)将字体导出到 .jar从 iReport 并将其添加到我在 Eclipse 中的构建路径中。当我用 eclipse 编译项目时,这工作正常。
现在我正在转向生产,并且一直在使用 mvn clean install 命令在命令行上使用 Maven (v3.0.4) 编译项目,因此 eclipse 完全超出了构建周期.我已将字体 jar 安装到我的本地 maven 存储库中,并将其作为依赖项添加到我的 pom 中(类似于here 所述),但随后我运行程序,当生成使用该字体的文档的代码执行时,我获取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>
我也尝试将范围设置为运行时而不是编译,但这没有区别。
【问题讨论】:
-
你检查了 maven repo 中的 font's jar 吗?也许它坏了。您是否尝试在您的第一个应用程序(您在帖子的第一部分中描述)中使用这个 jar(来自 maven repo)?
-
我只是对照原件核对过,但据我所知它们是相同的;它们包含相同的文件,并且文件的大小都相同。我能看到的唯一区别是,在 repo 中,版本已附加到文件名中。当我添加 maven 依赖项(我已经清理并更新了 maven 项目)时,我从 eclipse 中的构建路径路径中删除了原始的外部 jar 依赖项,因此当我从 eclipse 构建时,它使用的是 maven repo afaik 中的那个。当我以这种方式从 Eclipse 构建时,它工作正常。但是有了 mvn,就不行了。
-
我想这个问题可以概括为:A)用mvn构建maven项目和在eclipse中构建它有什么区别?和/或 B) 我怎样才能找到每个的更多构建细节,以便我可以更仔细地检查差异并找出问题的根源?
标签: java eclipse maven fonts jasper-reports