На случай, если кто-нибудь еще придет сюда, это моя конфигурация для сборки и запуска OR-инструментов с Gradle.
Прежде всего, у меня есть проект верхнего уровня, в котором у меня есть код, связанный с приложением, под названием suite
, и модуль, в котором я отделил весь код, связанный с OR-Tools, под названием optimization
.В модуле optimization
у меня есть папка lib
, которая содержит следующие файлы (не уверены, нужны ли они все):
com.google.ortools.jar
libcvrptw_lib.so
libdimacs.so
libjniortools.so
libortools.so
Как видите, здесь нет protobuf.jar
-Это приходит позже.Затем я добавил следующее в мой существующий файл build.gradle
верхнего уровня:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.6'
}
...
}
apply plugin: 'application'
applicationDefaultJvmArgs = ["-Djava.library.path=optimization/lib"]
mainClassName = 'com.package.name.MainClass'
Обратите внимание, что для applicationDefaultJvmArgs
вы должны изменить путь к папке lib
.И, конечно же, обновите mainClassName
до вашего основного класса.
И, наконец, в build.gradle
моего optimization
модуля я добавил следующие зависимости:
dependencies {
compile files('lib/com.google.ortools.jar')
compile 'com.google.protobuf:protobuf-java:3.0.0'
...
}
Вышекомпилирует ortools.jar
из папки lib
и загружает библиотеку protobuf-java
из mavenCentral
.
PS.Не забудьте загрузить в свой класс Java библиотеку jniortools
, которая обращается к OR-инструментам:
static {
System.loadLibrary("jniortools");
}
Очевидно, вам не нужны субмодули для этой работы - это всего лишь моя реализация,Надеюсь, это поможет.