Я запускаю простой тестовый проект java с использованием sqlite4java и с использованием java.
Я могу загрузить основную библиотеку sqlite4java, но я не уверен, какой лучший (любой!) способ получить gradle для загрузки родных библиотек и поместить их в нужное место.
Это мой файл 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 заполняет путь класса при запуске тестов...)
Я уверен, что в первый раз, когда я попытался построить, у меня появилось сообщение о том, что вы не можете распаковать ZIP файл libsqlite4java-osx (не удивительно, поскольку maven central говорит о своем файле dylib).
Что мне нужно сделать, чтобы сделать gradle правильной?
ASIDE. Я могу получить код для запуска, вручную скопировав загруженный .dylib
из кэша maven в место, указанное в моем java.library.path
(думаю, я использовал $HOME/Library/Java/Extensions
on мой mac). Но это, по-видимому, противоречит целям упаковки всех настроек и зависимостей в файле .gradle
и не позволит мне распространять что-либо легко позже.