使用Makefile

时间:2018-03-26 09:13:46

标签: java gradle intellij-idea makefile or-tools

我有一个包含3个不同模块的Java / Gradle项目。其中一个模块(我们称之为或模块)依赖于or-tools,遗憾的是,它尚未通过某些公共存储库(如Maven)提供,因此必须从源。

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

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

MainClass Run Configuration OrModule Run Configuration

对于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正确编写此配置的任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

我已经完全摆脱了Makefile,从而解决了这个问题。 Here's原始答案。

这个问题在很早以前就已经解决了,所以如果现在有一个更简单的解决方案,请发布它,我将更改接受的答案。