Agrupar dependências nativas em .jar executável com Maven

Eu tenho um projeto gerenciado em Maven que tem algumdependências nativas (LWJGL).

Tudo funciona bem no desenvolvimento, mas agora eu quero configurar o Maven para que ele crie um arquivo .jar executável que eu possa redistribuir. Em particular, eu quero que seja muito fácil para os usuários rodarem o aplicativo sem ter que mexer em caminhos de bibliotecas ou descompactar bibliotecas nativas, etc.

Atualmente eu sou capaz de construir um arquivo .jar que inclui todas as dependências, mas se eu executá-lo, então (sem surpresa) recebo um erro de link insatisfeito:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.libr
ary.path
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at org.lwjgl.Sys$1.run(Sys.java:73)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
        at org.lwjgl.Sys.loadLibrary(Sys.java:95)
        at org.lwjgl.Sys.<clinit>(Sys.java:112)
        at org.lwjgl.opengl.Display.<clinit>(Display.java:132)
        at glaze.TestApp.start(TestApp.java:10)
        at glaze.TestApp.main(TestApp.java:31)

Obviamente, posso fazê-lo funcionar instalando manualmente as bibliotecas nativas e executando o jar comjava -Djava.library.path=/path/to/libs mas isso não é algo que eu possa esperar que meus usuários façam.

Aqui está o pom.xml, caso seja relevante:https://github.com/mikera/glaze/blob/master/pom.xml

É possível configurar o Maven para que ele crie um .jar executável que inclua as dependências nativas e seja executado com sucesso quando clicado duas vezes?

questionAnswers(3)

yourAnswerToTheQuestion