4

我正在尝试将 World Wind Java 用于 Maven 项目。

第一种方法是在此处获取他们的 SDK以及构建路径中的所有依赖项。但我想让它更符合 Maven 标准。

第一个依赖项:jogl-all.jar。SDK v2.0.0 似乎使用了 JOGL 的 v2.1.5(来自清单)。因此我把它放在我的 pom 文件中:

<dependency>
    <groupId>org.jogamp.jogl</groupId>
    <artifactId>jogl-all</artifactId>
    <version>2.1.5</version>
</dependency>

这是我的问题:两个 jar 文件的大小非常不同,而且,使用 SDK 中的 JOGL jar,我可以导入com.jogamp.opengl.awt.GLCanvas,而使用 maven 检索 JAR,我不能。

我不明白如何在使用完全相同的版本时获得两种不同的行为/JAR。

有什么线索吗?在 Maven 项目中使用 World Wind Java 的任何其他经验?

4

4 回答 4

4

对 World Wind Java 自述文件的一些挖掘似乎发现了这个问题:


JOGL 库概述

JOGL 库为 World Wind Java 提供 (1) 与 OpenGL API 的 Java 绑定,以及 (2) 与 Java 的 AWT 和 Swing 窗口工具包兼容的 OpenGL 上下文:http: //jogamp.org/jogl/www/

World Wind Java 使用 JOGL v2.1.5,于 2014 年 3 月 11 日发布,下载地址:http: //jogamp.org/deployment/v2.1.5/archive/jogamp-all-platforms.7z

JOGL 库编译的 JAR 文件和 README 文件被检入 World Wind Java 源代码,随所有 World Wind Java 构建一起分发,并包含在 World Wind Java Web Start 部署中。这对于确保 World Wind Java 的正确运行是必要的,因为 JOGL 中的更改有时会不稳定或与以前的版本不兼容。此外,World Wind Java 的 JOGL JAR 文件副本已修改,以启用 jogamp.org 域之外的 Web Start 部署。


因此,将 World Wind Java 放入中央存储库的人应该已经打包并部署了非常具体的 JOGL/Gluegen Jars 以使其工作。同时,我将提取这些版本并将其部署到我自己的私有存储库中。

于 2015-03-20T21:20:30.120 回答
1

如果您想在 Maven 中使用库,则应将依赖项添加到项目中,无需寻找所有传递依赖项(除非文档另有说明)。对于世界风,我发现了对这个网站的依赖:https ://mvnrepository.com/artifact/gov.nasa/worldwind/2.0.0-986

<dependency>
  <groupId>gov.nasa</groupId>
  <artifactId>worldwind</artifactId>
  <version>2.0.0-986</version>
</dependency>

它应该工作。

使用 Maven 的优点之一是不需要知道使用每个库所需的每个 jar,Maven 将管理这一点。在这种情况下,World Wind Maven 依赖项有它自己的 POM,它声明了所有需要的依赖项。Maven 将扫描所有依赖项中的所有 POM,并在需要时下载所有必需的 JAR。

于 2014-10-16T19:21:00.887 回答
1

将两个同名文件放在不同位置但内容不同,没有技术限制。虽然我不推荐这个——尤其是库工件。这会让像你这样的人感到困惑,迟早会让他们发疯。

WorldWind Java 团队为什么这样做?询问负责任的 NASA 官员:Patrick Hogan

于 2014-10-17T09:41:26.360 回答
0

请宁愿使用 2.1.5-01 而不是 2.1.5,因为后者有一个大问题,在部署过程中出现了问题:

http://jogamp.org/deployment/maven/org/jogamp/jogl/jogl-all/2.1.5-01/

于 2014-10-19T12:08:39.013 回答