2015-04-12 73 views
1

我是新来的gradle,我想用lwjgl 配置gradle。因为我没有在lwjgl3托管的地方发现一个回购站,所以我决定每个使用这个项目的人都必须定义lwjgl库的路径。我创建了一个user.gradle文件,其中包含jar和本机的路径。Gradle和Lwjgl 3土着

我的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。

回答

0

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

非常简单的解决方案如何与gradle这个设置类路径:

应用Java插件和使用功能:

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

的只是通过gradle这个运行你的应用程序,它应该工作。

有通过搜索我没有找到合适的人:-)

希望的解决方案可以帮助别人“的gradle LWJGL土人”这么多的解决方案。

0

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

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

它将从jar文件解压缩,从而使您可以使用它们和你的项目部署。

+0

谢谢你的回答。也许你能解释一下究竟包含此块: '当地人{ 罐子= [ 'LWJGL平台-2.9.1-当地人窗口'] 平台= '窗口' }' 瓶当本地人?我很困惑。 – H3ADLESS

+0

我的理解是,你有包含在jar文件中的本地库(由java代码所要求)。这个插件将它们提取到您的构建目录中,以便您可以使用并重新打包它们。 – cjstehno

+0

不,我有本地人,例如windows的.dll文件,mac的.dylib文件和linux的.so。他们在一个简单的文件夹中。也许这个问题比你想象的更简单:把这些文件放在gradle项目中的位置? – H3ADLESS