3

我有一个包含 3 个不同模块的 Java/Gradle 项目。其中一个模块(我们称之为orModule)依赖于or-tools,遗憾的是它还不能通过某些公共存储库(如 Maven)获得,因此它必须从源代码构建。

开发 or-tools 的团队提供了一个用于编译/构建项目的 Makefile,这是我迄今为止一直在使用的。更具体地说,我使用 Makefile 编译我的 orModule,然后运行我的主 Java 类,它属于主模块。下面是我用于两个模块的运行配置的两个屏幕截图。

我的目标是在 Gradle 构建系统中移动这些配置,因为我需要最终使用 Gradle 构建项目。

MainClass 运行配置 OrModule 运行配置

对于 MainClass,我在根目录中添加了以下配置build.gradle

apply plugin: 'java'
apply plugin: 'application'

mainClassName = 'com.some.package.MainClass'
applicationDefaultJvmArgs = ['-Djava.library.path=/orModule/lib']

我认为这是正确的。但是,我不确定如何在 Gradle 中“移动”Makefile 配置。以下是我尝试过的替代方法之一,orModule/build.gradle但它失败了。

task ndkBuild(type: Exec) {
    commandLine 'make', ['EX=src/main/java/com/some/path/OrClass.java','PKG=com/some/package'], 'cjava', file('Makefile')
}

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn ndkBuild
}

任何有关如何使用 Gradle 正确编写此配置的帮助,将不胜感激。

4

1 回答 1

1

我已经通过完全摆脱 Makefile 解决了这个问题。这是原始答案。

这已经在很久以前解决了,所以如果有人现在有更简单的解决方案,请发布它,我会更改接受的答案。

于 2019-07-26T15:47:59.867 回答