4

手動で行う以外に解決策が見つからなかったプロセスを自動化するための支援を求めるためにここにいます。

私のプロジェクトの 1 つで、次の依存関係があります。

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 とネイティブを手動でlib-directory にコピーします。これは、(デフォルトでは) 非マネージド ライブラリの sbt のデフォルトの場所です。

ただし、手動で移動する必要がある場合は、手動でダウンロードして、ファイルから完全に除外することもできますsbt。本当にやりたいことじゃない。

このプロセスを自動化するにはどうすればよいですか? 一般的に、私は2つのアイデアについて考えましたが、それらを適切に翻訳する方法がわかりませんsbt:

  1. -Djava.library.path依存関係があるパスに自動的に設定します。このパスは OS ごとに異なります。もちろん、いつの日か実際にプロジェクトを実行可能ファイルとしてエクスポートできるようにしたいと考えてい ます jar;) 大きな欠点や再度コピーすることなく。
  2. 今行っていることを自動的に実行します。つまり、依存関係をlib-folder に移動します。

これに苦労しているのは私だけではありません (または、そうかもしれません) が、私が見つけたのは 2 つの「解決策」だけでした。

  1. 「手動で実行してください」: IDEA と SBTを使用して LWJGL を実行することはできません
  2. https://github.com/philcali/sbt-lwjgl-pluginを使用しますが、次のようになります。

現在、SBT バージョン 0.13 はサポートされていません。

最適ではない(再び)よりもはるかに少ないです:(

他にアイデアはありますか?誰もネイティブに対処する必要がないとは想像できません!

4

0 に答える 0