【发布时间】:2017-09-24 07:53:48
【问题描述】:
我的 pom.xml 文件有问题。我有一个使用 Spring MVC 制作的项目并使用此依赖项:
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.3.0</version>
</dependency>
该项目是在基于 64 位 Gnome Debian 的系统上开发的,并且工作正常,但昨天我尝试在 32 位 Debian LXDE 笔记本电脑上从 Github 签出该项目,但我遇到 Maven 错误,Eclipse 一直说我缺少依赖项:
- 缺少工件 org.olap4j:olap4j:jar:0.9.7.309-JS-3
- 缺少工件 com.lowagie:itext:jar:2.1.7.js5
虽然我在两台机器上使用相同的软件版本(32 位和 64 位):
- 日食火星。
- apache-tomcat-8.0.33.
- jdk1.8.0_92
我找到的解决方案(在几乎杀死 maven 之后)是添加所需的额外 maven 依赖项。对我来说,这个解决方案没有多大意义,因为它只在 32 位机器上需要:
<!-- https://mvnrepository.com/artifact/com.lowagie/itext -->
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.olap4j/olap4j -->
<dependency>
<groupId>org.olap4j</groupId>
<artifactId>olap4j</artifactId>
<version>1.2.0</version>
</dependency>
经过研究,我发现 Jasperreports 6.3.0 已经在 jar 文件中包含了缺少的依赖项,这就是为什么在 64 位机器上唯一需要的依赖项是 jasperreports 6.3.0。
我的问题是:
- 为什么我需要两个版本的 pom 文件:一个用于 32 位 计算机和另一台为 64 位计算机,考虑到 软件工具版本都一样吗?
- 我怎样才能只有一个版本的 pom 文件在两个平台上都可以使用?。
提前致谢!
【问题讨论】:
-
这确实很奇怪。您是否也在两台机器上使用相同的 Maven 版本?您使用什么 JDK(哪个版本和什么架构)? (因为您可以在 64 位机器上使用 32 位 JDK...)
标签: maven jasper-reports itext olap4j