我如何设置一个使用sqlite4java的简单的gradle项目?

前端之家收集整理的这篇文章主要介绍了我如何设置一个使用sqlite4java的简单的gradle项目?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用sqlite4 java启动一个简单的 java测试项目,并使用java构建.

我可以轻松下载下载的sqlite4java软件库,但我不知道最好的(任何!)的方法来下载本地库并将它们放在正确的位置.

这是我的build.gradle文件

apply plugin: 'java'

/* We use Java 1.7 */
sourceCompatibility = 1.7
targetCompatibility = 1.7
version = '1.0'

repositories {
    mavenCentral()
}

sourceSets {
    main {
        java.srcDir 'src'
        output.classesDir = 'build/main'
    }
    test {
        java.srcDir 'test'
        output.classesDir = 'build/test'
    }
}


dependencies {
    testCompile group: 'junit',name: 'junit',version: '4.11'
    compile "com.almworks.sqlite4java:sqlite4java:1.0.392"
    compile "com.almworks.sqlite4java:libsqlite4java-osx:1.0.392"
}

但是当我运行一个简单的测试我得到:

TestTest > testsqlite4Basic Failed
    com.almworks.sqlite4java.sqliteException at TestTest.java:15
        Caused by: java.lang.UnsatisfiedLinkError at TestTest.java:15

(我正在IntelliJ内部建立,但是正在使用gradle构建选项 – 所以我不认为ItelliJ在运行测试时填满类路径…)

我很确定我第一次尝试构建我有一些关于无法解压缩libsqlite4java-osx ZIP文件的消息,(毫不奇怪,maven中心说它的一个dylib文件).

我需要做什么才能使毕业做正确的事情?

ASIDE:我可以通过将下载的.dylib从maven缓存手动复制到我的java.library.path中列出的某个地方来运行(想想我在Mac上使用$HOME / Library / Java / Extensions).但这似乎与包含所有的.gradle文件中的所有设置和依赖关系的整个点相反,不会让我稍后分发任何东西.

我想,你需要使用额外的毕业插件来处理本地库或者做出你自己的具体任务,将本地库上传并放置在正确的位置,以便可以找到并链接.

目前我只知道一个这样的插件,希望能解决你的问题https://github.com/cjstehno/gradle-natives

编辑:
在你的情况下插件的问题是事实,你的依赖“com.almworks.sqlite4java:libsqlite4java-osx:1.0.392”本身是本机的lib,而不是一个包含本机lib的jar,因为我想.因此,在这种情况下,您可以简单地将依赖关系添加到构建脚本的依赖关系中,因为已经完成,然后创建自定义复制任务,将其放置在您需要的任何位置.试着用Win7上的2.6版本做,看起来像:

task copyNtiveDeps(type: Copy) {
  from (configurations.compile+configurations.testCompile) {
    include "libsqlite4java-osx-1.0.392.dylib"
  }
  into "c:\\tmp"
}

在您的情况下,您只需要将“into”属性设置为java.library.path中的某个路径.第二,你可以使这个任务自动运行,具有gradO任务属性dependsOn和mustRunAfter.

猜你在找的Sqlite相关文章