如果有其他人来这里,这是我使用 Gradle 构建和运行 OR 工具的配置。
首先,我有一个顶级项目,其中有与应用程序相关的代码,称为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 更新为您的主类。
最后,在我的optimization 模块的build.gradle 中,我添加了以下依赖项:
dependencies {
compile files('lib/com.google.ortools.jar')
compile 'com.google.protobuf:protobuf-java:3.0.0'
...
}
上面从lib文件夹编译ortools.jar,从mavenCentral下载protobuf-java库。
PS。不要忘记在访问 OR 工具的 Java 类中加载 jniortools 库:
static {
System.loadLibrary("jniortools");
}
显然,您不需要子模块来完成这项工作 - 这只是我的实现。希望这会有所帮助。