我有一个带有3个不同模块的Java / Gradle项目。这些模块之一(我们称其为orModule)依赖于or-tools,不幸的是,该依赖项尚未通过某些公共(public)存储库(如Maven)提供,因此必须从源代码构建。
开发或工具的团队提供了一个Makefile来编译/构建项目,这是我到目前为止一直在使用的文件。更具体地说,我使用Makefile编译orModule,然后运行主Java类,该类属于主模块。以下是我用于两个模块的运行配置的两个屏幕截图。
我的目标是在Gradle构建系统中移动这些配置,因为我需要最终使用Gradle构建项目。
对于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正确编写此配置的帮助。
最佳答案
我已经完全摆脱了Makefile,从而解决了这个问题。 Here's原始答案。
这个问题在很早以前就已经解决了,所以如果现在有人有一个更简单的解决方案,请发布它,我将更改接受的答案。