Thank you for your help, but I am still stuck. I’ve tried two approaches, one is to compile lwjgl3 myself from the master branch, I’ve tagged this version as 3.3.1c-SNAPSHOT to avoid confusion. The other is to consume the 3.3.1-SNAPSHOT that is available in the repository https://oss.sonatype.org/content/repositories/snapshots/.
When I compile lwjgl3 myself, I look in my ~/.m2 repo and see the bom for 3.3.1c-SNAPSHOT present.
treemark@Marks-Mac-mini lwjgl3 % ./gradlew clean build publishToMavenLocal
treemark@Marks-Mac-mini lwjgl3 % find ~/.m2 | grep 3.3.1c
/Users/treemark/.m2/repository/org/lwjgl/lwjgl-bom/3.3.1c-SNAPSHOT
/Users/treemark/.m2/repository/org/lwjgl/lwjgl-bom/3.3.1c-SNAPSHOT/lwjgl-bom-3.3.1c-SNAPSHOT.pom
/Users/treemark/.m2/repository/org/lwjgl/lwjgl-bom/3.3.1c-SNAPSHOT/maven-metadata-local.xml
/Users/treemark/.m2/repository/org/lwjgl/lwjgl-bom/3.3.1c-SNAPSHOT/lwjgl-bom-3.3.1c-SNAPSHOT.module
In my minimal consuming project my build.gradle file looks like this.
repositories {
mavenLocal()
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}
dependencies {
implementation platform("org.lwjgl:lwjgl-bom:3.3.1c-SNAPSHOT")
implementation "org.jmonkeyengine:jme3-core:3.5.0-stable"
implementation "org.jmonkeyengine:jme3-desktop:3.5.0-stable"
implementation "org.jmonkeyengine:jme3-lwjgl3:3.5.0-stable"
}
In this configuration I still get failures to resolve all the individual native libraries, but it succeeds in seeing the lwjgl-bom.
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.lwjgl:lwjgl-bom:3.3.1c-SNAPSHOT
| +--- org.lwjgl:lwjgl:3.3.1c-SNAPSHOT FAILED
| +--- org.lwjgl:lwjgl-glfw:3.3.1c-SNAPSHOT FAILED
| +--- org.lwjgl:lwjgl-jemalloc:3.3.1c-SNAPSHOT FAILED
| +--- org.lwjgl:lwjgl-openal:3.3.1c-SNAPSHOT FAILED
| +--- org.lwjgl:lwjgl-opencl:3.3.1c-SNAPSHOT FAILED
| \--- org.lwjgl:lwjgl-opengl:3.3.1c-SNAPSHOT FAILED
+--- org.jmonkeyengine:jme3-core:3.5.0-stable
+--- org.jmonkeyengine:jme3-desktop:3.5.0-stable
| \--- org.jmonkeyengine:jme3-core:3.5.0-stable
\--- org.jmonkeyengine:jme3-lwjgl3:3.5.0-stable
+--- org.jmonkeyengine:jme3-core:3.5.0-stable
+--- org.jmonkeyengine:jme3-desktop:3.5.0-stable (*)
+--- org.lwjgl:lwjgl:3.3.0 -> 3.3.1c-SNAPSHOT FAILED
+--- org.lwjgl:lwjgl-glfw:3.3.0 -> 3.3.1c-SNAPSHOT FAILED
+--- org.lwjgl:lwjgl-jemalloc:3.3.0 -> 3.3.1c-SNAPSHOT FAILED
+--- org.lwjgl:lwjgl-openal:3.3.0 -> 3.3.1c-SNAPSHOT FAILED
+--- org.lwjgl:lwjgl-opencl:3.3.0 -> 3.3.1c-SNAPSHOT FAILED
\--- org.lwjgl:lwjgl-opengl:3.3.0 -> 3.3.1c-SNAPSHOT FAILED
The other way I tried was just to include 3.3.1-SNAPSHOT from lwjgl3’s maven repo… this does seem to pick up all the required transient dependencies correctly.
compileClasspath - Compile classpath for source set 'main'.
+--- org.lwjgl:lwjgl-bom:3.3.1-SNAPSHOT
| +--- org.lwjgl:lwjgl:3.3.1-SNAPSHOT (c)
| +--- org.lwjgl:lwjgl-glfw:3.3.1-SNAPSHOT (c)
| +--- org.lwjgl:lwjgl-jemalloc:3.3.1-SNAPSHOT (c)
| +--- org.lwjgl:lwjgl-openal:3.3.1-SNAPSHOT (c)
| +--- org.lwjgl:lwjgl-opencl:3.3.1-SNAPSHOT (c)
| \--- org.lwjgl:lwjgl-opengl:3.3.1-SNAPSHOT (c)
+--- org.jmonkeyengine:jme3-core:3.5.0-stable
+--- org.jmonkeyengine:jme3-desktop:3.5.0-stable
| \--- org.jmonkeyengine:jme3-core:3.5.0-stable
\--- org.jmonkeyengine:jme3-lwjgl3:3.5.0-stable
+--- org.jmonkeyengine:jme3-core:3.5.0-stable
+--- org.jmonkeyengine:jme3-desktop:3.5.0-stable (*)
+--- org.lwjgl:lwjgl:3.3.0 -> 3.3.1-SNAPSHOT
+--- org.lwjgl:lwjgl-glfw:3.3.0 -> 3.3.1-SNAPSHOT
| \--- org.lwjgl:lwjgl:3.3.1-SNAPSHOT
+--- org.lwjgl:lwjgl-jemalloc:3.3.0 -> 3.3.1-SNAPSHOT
| \--- org.lwjgl:lwjgl:3.3.1-SNAPSHOT
+--- org.lwjgl:lwjgl-openal:3.3.0 -> 3.3.1-SNAPSHOT
| \--- org.lwjgl:lwjgl:3.3.1-SNAPSHOT
+--- org.lwjgl:lwjgl-opencl:3.3.0 -> 3.3.1-SNAPSHOT
| \--- org.lwjgl:lwjgl:3.3.1-SNAPSHOT
\--- org.lwjgl:lwjgl-opengl:3.3.0 -> 3.3.1-SNAPSHOT
\--- org.lwjgl:lwjgl:3.3.1-SNAPSHOT
It also compiles correctly, but at runtime it fails with:
java.lang.UnsatisfiedLinkError: Failed to locate library: liblwjgl.dylib
at org.lwjgl.system.Library.loadSystem(Library.java:164)
at org.lwjgl.system.Library.loadSystem(Library.java:63)
at org.lwjgl.system.Library.<clinit>(Library.java:51)
at org.lwjgl.system.MemoryUtil.<clinit>(MemoryUtil.java:100)
at org.lwjgl.system.Pointer$Default.<clinit>(Pointer.java:67)
at org.lwjgl.system.Callback.<clinit>(Callback.java:40)
at com.jme3.system.lwjgl.LwjglWindow.createContext(LwjglWindow.java:195)
at com.jme3.system.lwjgl.LwjglWindow.initInThread(LwjglWindow.java:529)
at com.jme3.system.lwjgl.LwjglWindow.run(LwjglWindow.java:662)
at com.jme3.system.lwjgl.LwjglWindow.create(LwjglWindow.java:493)
at com.jme3.app.LegacyApplication.start(LegacyApplication.java:490)
at com.jme3.app.LegacyApplication.start(LegacyApplication.java:442)
at com.jme3.app.SimpleApplication.start(SimpleApplication.java:126)
at com.appliedvillainy.jme.Main.main(Main.java:26)