2

我有一个可以通过eclipse (ECJ)很好地构建的项目,但是Oracle javac无法构建它(某些原因,如链接:ecj 和 javac 的不同)。我想从 eclipse 转移到 Gradle 构建,以便 Jenkins 可以运行 Gradle 脚本。但是 Gradle 总是使用 javac 来编译。我使用插件'eclipse,eclipse-wtp'或库,jdt的依赖配置gradle使用ECJ,但它仍然不使用ECJ编译:

compileJava{   
    options.forkOptions.with {
    executable = 'java'
    jvmArgs = ['-classpath','_mylibary_jdt_jar']
    }
}

问题:我不知道使用 Eclipse Compiler (ECJ) 编译我期望的类的方式(没有文档,有些方法但旧 gradle 过期或不正确) gradle 4.1 运行任务。

注意:当我通过 javac 构建时出现此错误:与 javac 不兼容的类型。我想通过 ECJ 的任务 gradle 运行良好。

4

1 回答 1

1

将此添加到 gradle 构建脚本对我有用:

configurations {
    ecj
}
dependencies {
    ecj 'org.eclipse.jdt:ecj:3.25.0'
}

compileJava {
    options.fork = true
    options.forkOptions.with {
    executable = 'java'
    jvmArgs = ['-classpath', project.configurations.ecj.asPath, 'org.eclipse.jdt.internal.compiler.batch.Main', '-nowarn']
    }
}
于 2017-09-20T18:00:41.973 回答