eclipse - Gradle : How to compile Java by eclipse ECJ (JDT core) by running Gradle 4.1 task

标签 eclipse gradle compiler-errors javac ecj

我有一个可以通过 eclipse(ECJ)很好地构建的项目但是 Oracle javac 无法构建它(某些原因,如链接the different of ecj and 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']
    }
}

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

Note : This error when I built by javac: incompatible type with javac . I want to run well by task gradle with ECJ.

最佳答案

将其添加到gradle构建脚本中对我而言有效:

configurations {
    ecj
}
dependencies {
    ecj 'org.eclipse.jdt.core.compiler:ecj:4.6.1'
}

compileJava {
    options.fork = true
    options.forkOptions.with {
    executable = 'java'
    jvmArgs = ['-classpath', project.configurations.ecj.asPath, 'org.eclipse.jdt.internal.compiler.batch.Main', '-nowarn']
    }
}

关于eclipse - Gradle : How to compile Java by eclipse ECJ (JDT core) by running Gradle 4.1 task,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46196120/

相关文章:

eclipse - 在 Eclipse 中开发 jenkins Groovy 脚本

java - 如何添加Java SE 1.8依赖项以在Gradle中编译任务?

build - Gradle:如何从非 java 项目发布 zip 并在 java 项目中使用它?

c# - 类型或命名空间 <blah> 不存在

java - 使用 Timer 类时出错,需要简单的方法来制作倒数计时器

c++ - 运行 .sh 脚本而不是可执行文件

java - 在 IntelliJ IDEA 中突出显示异常抛出器

java - 如何从 sql server 2005 读取 java Servlet 中的阿拉伯字母?

java - IntelliJ 文件夹结构上的 Gradle

AoT 编译中的 Angular2 主机绑定(bind)问题