Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle:如何通过运行Gradle4.1任务通过EclipseECJ(JDTCore)编译Java_Eclipse_Gradle_Compiler Errors_Javac_Ecj - Fatal编程技术网

Gradle:如何通过运行Gradle4.1任务通过EclipseECJ(JDTCore)编译Java

Gradle:如何通过运行Gradle4.1任务通过EclipseECJ(JDTCore)编译Java,eclipse,gradle,compiler-errors,javac,ecj,Eclipse,Gradle,Compiler Errors,Javac,Ecj,我有一个项目可以通过eclipse(ECJ)很好地构建,但是oraclejavac无法构建它(一些原因如link:)。 我想从eclipse迁移到Gradle构建,以便Jenkins可以运行Gradle脚本。但是Gradle总是使用javac进行编译。我使用插件“eclipse,eclipse wtp”或库,jdt的依赖项来配置gradle,但它仍然不使用ECJ来编译: compileJava{ options.forkOptions.with { executable =

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

compileJava{   
    options.forkOptions.with {
    executable = 'java'
    jvmArgs = ['-classpath','_mylibary_jdt_jar']
    }
}
问题是:我不知道用Eclipse编译器(ECJ)运行Gradle4.1任务来编译我所期望的类的方法(没有文档,有些方法已经过期,但使用了old gradle或不正确)

注意:当我使用javac构建时出现此错误:。我想通过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']
    }
}

你说得对,我也阅读了插件ECJ的代码,并理解了它的实现方式。但是在哪里添加这个片段呢?更多信息可能有用。此答案似乎是开放的(未回答)。@Taivan的回答是否涵盖了你的问题?如果是,请考虑接受它作为答案。