首页 > 解决方案 > Java 10 上的 JOGL(模块定义)

问题描述

我一直在尝试使用拼图模块在 Java 10 上使用项目库,但 JOGL 一直在我身上失败,我在网上找不到任何帮助。

请注意,整个项目在没有module-info.java文件的情况下可以正常编译和工作,并且我设法在两个不同的项目之间获得了工作模块链接(不是一切都被破坏了)。

JOGL 项目 (A) 具有以下 module-info.java 和 maven 依赖项。然后有另一个项目 (B) 使用 JOGL 项目,但无法访问任何 JOGL 类型(它们无论如何都不会导出)。项目 B 运行项目 A 的东西。项目 B 还不是模块化的。

模块信息文件:

module com.foo.bar {
     ...
     requires jogl.all.main;
     requires gluegen.rt.main;
}

Maven依赖:

<dependency>
    <groupId>org.jogamp.gluegen</groupId>
    <artifactId>gluegen-rt-main</artifactId>
    <version>2.3.2</version>
</dependency>
<dependency>
    <groupId>org.jogamp.jogl</groupId>
    <artifactId>jogl-all-main</artifactId>
    <version>2.3.2</version>
</dependency>

Eclipse 报告任何 jogl 导入:

import com.jogamp.opengl.GL4;
-> The import com.jogamp.opengl cannot be resolved

奇怪的是,maven 愉快地构建项目 A/B 没有错误,当我从命令行将项目 B 作为 jar 运行时,一切正常,没有额外的运行时错误。

这让我相信 maven build 可以很好地过渡(它甚至知道模块吗?),这里只有一个困惑的是 eclipse。

Java 构建路径中的 Eclipse 库:

Eclipse 库选项卡

使用:Eclipse Photon 4.8.0 (20180619-1200)、Maven 3.5.3(3.7.0 编译器插件)、Java JDK-10.0.1

标签: javaeclipsemavenjogljava-10

解决方案


推荐阅读