Gradle和Lwjgl 3原住民

时间:2015-04-12 13:18:09

标签: java gradle native lwjgl

我是gradle的新手,我尝试使用lwjgl 3 配置gradle。因为我没有找到托管lwjgl3的仓库,所以我决定使用这个项目的每个人都必须定义lwjgl lib的路径。我创建了一个user.gradle文件,其中包含jar和native的路径。

我的build.gradle目前看起来像这样。

apply plugin: 'java'
apply from: 'user.gradle'
apply plugin: 'application'

sourceCompatibility = 1.8
targetCompatibility = 1.8

mainClassName = "mp.Main"

println("LWJGL jar path is configured to: ${config.lwjgl3Jar}")
println("LWJGL natives path is configured to: ${config.lwjgl3Natives}")

repositories {
    mavenCentral()
    flatDir {
        dir config.lwjgl3Jar
    }
}

dependencies {
    compile 'com.google.code.gson:gson:2.3.1'
    compile 'net.java.dev.jna:jna:4.1.0'
    testCompile 'junit:junit:4.+'
    testCompile 'com.carrotsearch:junit-benchmarks:0.7.2'
    compile name: 'lwjgl'
}

tasks.withType(Test) {
    scanForTestClasses = false
    include "**/*Test.class" // whatever Ant pattern matches your test class files
}

sourceSets{
    main {
        java {
            srcDir 'src'
            exclude 'mp/graphics/gl/scene/Mesh.java'
            exclude 'test'
        }
    }

    test{
        java {
            srcDir 'src/test'
            exclude '**/UnsafeTest.java'
            exclude '**/DispatchTests/*'
            exclude '**/MemoryTest.java'
            exclude '**/SuperFastListTest.java'
            exclude '**/MatrixTest.java'
            exclude '**/SimulationTest.java'
        }
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.3'
}

如何设置原生代码?我尝试了不同的方式。这次谷歌并没有帮助我。所有结果都与此lib的旧版本相关,并且所有结果都使用存储库。也许我错过了森林之间的树木。有什么想法吗?

祝你好运!

PS:不确定它是否重要:我们在Windows,Linux和Mac上使用不同的IDE,如intelliJ和Eclipse。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题并编写了一个插件来处理与Java jar文件相关的本机。

http://cjstehno.github.io/gradle-natives/

它将从jar文件中解压缩它们,以便您可以使用它们并在项目中部署它们。

答案 1 :(得分:1)

我为我解决了这个问题。问题是我不知道如何配置gradle来使用本机。通常我在运行配置中设置类路径。但是:

如何使用gradle设置类路径的非常简单的解决方案:

应用java插件并使用函数:

run {        
    systemProperty 'java.library.path', 'path to ur natives')
}

只需通过gradle运行您的应用程序即可。

通过搜索" lwjgl gradle natives"有很多解决方案。我没找到合适的人:-)

希望解决方案可以帮助某人。

相关问题