Gradleで動作するサンプルLWJGLアプリケーションを取得しようとしています。LWJGLには、jar lwjgl-platform-2.8.5-natives-windows.jarなどにOpenGLとOpenALのネイティブバインディングがありますが、Gradleはこの事実を認識していないようです。
アプリケーションプラグインのdistZipタスクは、すべてのjarファイルをzip内のlibディレクトリに適切にコピーしますが、.batファイルでは、前述のネイティブjarのみをクラスパスに配置し、明示的にネイティブとしてjavaに渡しません。
同様に、Eclipseプロジェクトの生成でも、特定の依存関係の「ネイティブライブラリの場所」を設定できません。
生成されたアプリケーションまたはEclipseプロジェクトにネイティブライブラリを適切に追加するための公式の解決策はありますか?そうでない場合は、この制限を回避するための優れたハックはありますか?
私のgradle.build:
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'eclipse'
sourceCompatibility = 1.7
mainClassName = 'org.lwjgl.examples.Game'
repositories {
mavenCentral();
}
dependencies {
compile group: 'com.google.guava', name: 'guava', version: 'latest.release'
compile group: 'org.apache.commons', name: 'commons-lang3', version: 'latest.release'
compile group: 'org.lwjgl.lwjgl', name: 'lwjgl', version: 'latest.release'
testCompile group: 'com.jayway.awaitility', name: 'awaitility', version: 'latest.release'
testCompile group: 'junit', name: 'junit', version: 'latest.release'
testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: 'latest.release'
testCompile group: 'org.mockito', name: 'mockito-core', version: 'latest.release'
}
jar {
baseName = rootProject.name
version = System.env['BUILD_NUMBER']
version = version == null ? 0 : version
manifest {
attributes("Implementation-Title": baseName, "Implementation-Version": version)
}
}
生成されたzipディストリビューションの内容:
/lib//bin/tyle
/lib//bin/tyle.bat
/lib/commons-lang3-3.1.jar
/lib/guava-14.0-rc2.jar
/lib/jinput-2.0.5.jar
/lib/jinput-platform-2.0.5-natives-linux.jar
/lib/jinput-platform-2.0.5-natives-osx.jar
/lib/jinput-platform-2.0.5-natives-windows.jar
/lib/jutils-1.0.0.jar
/lib/lwjgl-2.8.5.jar
/lib/lwjgl-platform-2.8.5-natives-linux.jar
/lib/lwjgl-platform-2.8.5-natives-osx.jar
/lib/lwjgl-platform-2.8.5-natives-windows.jar
/lib/tyle-0.jar
lwjgl-platform-2.8.5-natives-windows.jarの内容:
META-INF/MANIFEST.MF
lwjgl.dll
lwjgl64.dll
OpenAL32.dll
OpenAL64.dll