我正在尝试将World Wind Java用于Maven项目。
第一种方法是在构建路径中使用他们的SDK here和所有依赖项。 但我想让它更符合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的任何其他经验?
感谢您的帮助,
答案 0 :(得分:4)
一些挖掘World Wind Java自述文件似乎已经出现了问题:
JOGL库为World Wind Java提供(1)与OpenGL API的Java绑定,以及(2)OpenGL上下文兼容 使用Java的AWT和Swing窗口工具包: 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文件副本,以便在外部启用Web Start部署 jogamp.org域名。
无论谁将World Wind Java放入中央存储库,都应该打包并部署必要的JOGL / Gluegen Jars以使其工作。与此同时,我将把这些版本提取并部署到我自己的私有存储库中。
答案 1 :(得分:1)
如果要在Maven中使用库,则应该将依赖项添加到项目中,不需要寻找所有传递依赖项(除非文档另有说明)。对于世界风,我发现了对该网站的依赖:http://maven-repository.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。
答案 2 :(得分:1)
在具有不同内容的不同位置上具有两个具有相同名称的文件没有技术限制。虽然我不推荐这个 - 特别是对于库工件。这会让人感到困惑,就像你一样,迟早会让他们发疯。
为什么WorldWind Java团队会这样做?问Responsible NASA Official: Patrick Hogan。
答案 3 :(得分:0)
请使用2.1.5-01而不是2.1.5,因为后者有一个大问题,在部署过程中出了问题:
http://jogamp.org/deployment/maven/org/jogamp/jogl/jogl-all/2.1.5-01/