在32位和64位平台上使用Maven依赖项问题

时间:2017-04-26 18:44:13

标签: maven jasper-reports itext olap4j

我的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位):

  • Eclipse Mars。
  • 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文件?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我认为最好的结果是将 JasperSoft 存储库添加到 pom.xml/settings.xml 中:

<repository>
    <id>jaspersoft.artifactory</id>
    <url>https://jaspersoft.jfrog.io/artifactory/third-party-ce-artifacts/</url>
</repository>

这个 repo 替换了 https://jasperreports.artifactoryonline.com

Java 中的 32/64 位几乎无关紧要,因为 JVM。是 JVM 完成了“肮脏的工作”