2017-09-13 138 views
1

我有一个可以很好地蚀(ECJ)甲骨文的javac不能建立它来建立一个项目,编译Java通过月食欧洲法院(JDT核心)(某些原因如链接:the different of ecj and javac)。 我想从eclipse移植到Gradle构建,以便Jenkins可以运行Gradle脚本。但是Gradle总是使用javac来编译。我使用的插件“日食,月食-WTP”或图书馆,JDT的依赖性的gradle配置使用ECJ这样的,但它仍然不使用ECJ编译:摇篮:如何通过运行摇篮4.1任务

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

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

注意:这个错误,当我由javac构建:incompatible type with javac。我想通过与ECJ的任务Gradle很好地运行。

回答

0

这为我工作:

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'] 
    } 
} 

希望它能帮助!

+0

你说得对,我也读过插件ECJ的代码,并理解完成的方式。 https://github.com/xinthink/gradle-ecj –