我在这里寻求帮助以自动化一个过程,除了手动执行之外,我没有看到其他解决方案。
在我的一个项目中,我有以下依赖项:
libraryDependencies ++= Seq(
"org.lwjgl" % "lwjgl" % "3.0.0a",
"org.lwjgl" % "lwjgl-platform" % "3.0.0a" classifier "natives-windows" classifier "natives-linux" classifier "natives-osx"
)
这会下载每个平台的实际 .jar 和本地文件。以这种方式发展是没有问题的。所有依赖项都在那里,并且找到了所有类。
但是编译和运行应用程序被证明是一个主要问题,你会得到:
java.lang.UnsatisfiedLinkError:java.library.path 中没有 lwjgl
现在我所做的不仅仅是次优的,它实际上破坏了使用托管库的全部目的:我手动将 jar 和 native 复制到一个lib
-directory,该目录(默认情况下)是非托管库的 sbt 默认位置。
但是,如果我必须手动移动它,我也可以手动下载它并将其完全排除在sbt
-file 之外。不是我真正想做的。
我怎样才能自动化这个过程?一般来说,我想到了两个想法,但不知道如何正确地将它们翻译为sbt
:
- 自动设置为
-Djava.library.path
依赖项所在的路径。这条路径因操作系统而异,当然我希望有一天能够将项目实际导出为 可运行jar
的项目;)没有重大缺陷或再次复制。 - 做我现在做的事,但自动:因此,将依赖项移动到
lib
-folder。
我不能是唯一一个为此苦苦挣扎的人(或者好吧,也许我是),但我发现的只是两个“解决方案”:
- “手动执行”:无法让 LWJGL 使用 IDEA 和 SBT 运行,正如我在长度中指出的那样 - 发现确实(小于)次优
- 使用https://github.com/philcali/sbt-lwjgl-plugin,但是:
目前不支持 SBT 版本 0.13。
远低于次优(再次):(
还有什么想法吗?我无法想象根本没有人需要与当地人打交道!