Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';由于依赖关系,我们不能在maven项目中使用WorldWindJava_Java_Maven_Jar_Worldwind - Fatal编程技术网

Can';由于依赖关系,我们不能在maven项目中使用WorldWindJava

Can';由于依赖关系,我们不能在maven项目中使用WorldWindJava,java,maven,jar,worldwind,Java,Maven,Jar,Worldwind,我正在尝试将WorldWindJava应用到Maven项目中 第一种方法是将他们的SDK和所有依赖项放在构建路径中。 但我想让它更符合maven 第一个依赖项:jogl-all.jar。SDK v2.0.0似乎使用JOGL的v2.1.5(来自清单)。 因此,我将其放在pom文件中: <dependency> <groupId>org.jogamp.jogl</groupId> <artifactId>jogl-all</art

我正在尝试将WorldWindJava应用到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>

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

我不明白在使用完全相同的版本时,我如何能得到两种不同的行为/罐子

有线索吗?是否有在Maven项目中使用World Wind Java的其他经验


感谢您的帮助,

如果您想在Maven中使用库,您应该将依赖项添加到项目中,不需要查找所有可传递的依赖项(除非文档另有说明)。对于世界风,我在这个网站上找到了依赖关系:


美国宇航局
世界风
2.0.0-986
它应该会起作用


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

没有技术限制,两个同名文件位于不同的位置,内容不同。尽管我不建议这样做,尤其是对于库工件。这让像你这样的人感到困惑,迟早会让他们发疯


为什么WorldWind Java团队会这样做?询问。

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


一些深入研究World Wind Java自述文件的人似乎发现了这个问题:


JOGL图书馆概览 JOGL库为World Wind Java提供(1)与OpenGL API的Java绑定,以及(2)与OpenGL上下文兼容 使用Java的AWT和Swing窗口工具包:

World Wind Java使用JOGL v2.1.5,于2014年3月11日发布,从以下网站下载:

JOGL库编译的JAR文件和自述文件被检入WorldWindJava源代码,并与所有 World Wind Java构建并包含在World Wind Java Web Start部署中。这是必要的,以确保 World Wind Java的正确操作,因为JOGL中的更改有时不稳定或与以前的版本不兼容 版本。此外,还修改了WorldWindJava的JOGL JAR文件副本,以便在外部部署Web Start 在jogamp.org域中



因此,无论是谁将World Wind Java放入中央存储库,都应该打包并部署使其工作所必需的非常特定的JOGL/Gluegen JAR。同时,我将提取这些版本并将其部署到我自己的私有存储库中。

。感谢您的关注。但是你的建议已经被尝试过了,并且导致了前面的问题仍然没有答案:两个具有相同名称和相同版本的jar是不同的。为什么WorldWind java团队会制作一个不同的jar,而这个jar除了在他们自己的网站上之外,在任何地方都不可用?(回到你的答案上来,当然worldwind和worldwindx在maven repos上是可用的,但它自己的POM并没有声明所有需要的依赖项,即:glugen rt、gdal和jogl all。手动添加它们并不能解决我第一个问题中解释的问题。当我读到你的问题时,我觉得你试图获得所有依赖项从零开始,但问题是,正如你所描述的,World Wind POM还不完整。很抱歉。我必须同意Gerold的答案,开发者应该对此有一些说法。你的意思是他们确实基于JOGL构建了自己的包,但与JOGL official不同?我猜你是对的,我会的请查看他们的论坛,以确保……使用2.1.5-01并不能改善情况。我已向NASA联系人发送了电子邮件,以了解我们是否可以了解这一问题。抱歉,现在最新版本是2.3.0。但是,它包含不向后兼容的更改,必须对World Wind进行一些修改,以使其正常工作(这是为了一个好的理由,因为它修复了Mac下的一个长期限制)。感谢您的关注。如果我理解的很好,您确认World Wind Java有一个专门的JOGL Jar文件副本,至少为“jogamp.org域外的web start部署”进行了修改.因此,没有办法让它与真正的JOGL jar一起工作。这解释了很多。对我来说,将它部署到中央存储库的最佳方法是包含JOGL的分支,而不是通过deps引用它。
<dependency>
  <groupId>gov.nasa</groupId>
  <artifactId>worldwind</artifactId>
  <version>2.0.0-986</version>
</dependency>