【问题标题】:Gradle: How to compile Java by eclipse ECJ (JDT core) by running Gradle 4.1 taskGradle:如何通过运行 Gradle 4.1 任务通过 Eclipse ECJ(JDT 核心)编译 Java
【发布时间】:2017-09-13 11:17:34
【问题描述】:

我有一个可以通过 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']
    }
}

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

注意:当我使用 javac 构建时出现此错误:incompatible type with javac。我想通过 ECJ 的任务 gradle 运行良好。

【问题讨论】:

  • 这个答案似乎是开放的(未回答)。 @Taivaan 的回答是否涵盖了您的问题?如果是,请考虑接受它作为答案。

标签: eclipse gradle compiler-errors javac ecj


【解决方案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']
    }
}

【讨论】:

  • 你说得对,我也读过插件ECJ的代码,了解做法。 github.com/xinthink/gradle-ecj
  • 但是在哪里添加这个 sn-p?更多信息可能会有用。
猜你喜欢
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 2015-07-08
  • 1970-01-01
  • 2016-08-23
  • 2016-03-08
  • 2017-02-15
  • 1970-01-01
相关资源
最近更新 更多