求助:如何正确应用Xtend插件构建Gradle项目并解决报错
Gradle中正确配置Xtend插件解决构建失败问题
我在Gradle项目中尝试应用Xtend插件执行构建操作,但构建过程报错失败,恳请指导如何正确配置Xtend插件,确保项目无报错完成构建。
使用的示例脚本
plugins { id "org.xtext.xtend" version "2.0.6" id 'org.xtext.builder' version '2.0.6' id 'java' } repositories { mavenCentral() } dependencies { implementation 'org.eclipse.xtend:org.eclipse.xtend.lib:2.17.1' xtextLanguages 'org.eclipse.xtend:org.eclipse.xtend.core:2.17.1' } sourceSets { main.java.srcDirs = ['src','xtend-gen'] main.xtend.srcDirs = ['src/main/xtend','xtend-gen'] main.xtendOutputDir = 'xtend-gen' } xtext { version = '2.17.1' languages { xtend { setup = 'org.eclipse.xtend.core.XtendStandaloneSetup' generator.outlet.producesJava = true } } } tasks.withType(org.xtext.gradle.tasks.XtextGenerate) { bootstrapClasspath = configurations.compileClasspath classesDirs = sourceSets.main.output.classesDirs languages = [xtext.languages.xtend] sourceSetOutputs = sourceSets.main.xtend.output sources = sourceSets.main.xtend }
报错截图

问题分析与修复方案
1. 版本不匹配是核心问题
你使用的Xtend插件版本(2.0.6)和依赖的Xtend核心库版本(2.17.1)不一致,这会导致严重的兼容性冲突。必须保证插件版本与Xtend依赖版本完全相同。
2. 简化配置,移除冗余设置
org.xtext.xtend插件已经内置了Xtend构建所需的全部逻辑,无需额外引入org.xtext.builder插件- 不要手动配置
XtextGenerate任务,插件会自动生成并配置该任务 - 避免将
xtend-gen输出目录同时设为xtend的源目录,这会触发循环编译问题
3. 正确的配置示例
plugins { id "org.xtext.xtend" version "2.17.1" id 'java' } repositories { mavenCentral() } dependencies { implementation 'org.eclipse.xtend:org.eclipse.xtend.lib:2.17.1' } // 如需自定义源目录,可按需调整,默认已包含src/main/xtend和xtend-gen sourceSets { main { xtend.srcDirs = ['src/main/xtend'] java.srcDirs = ['src/main/java', 'xtend-gen'] } } xtext { version = '2.17.1' languages { xtend { setup = 'org.eclipse.xtend.core.XtendStandaloneSetup' generator.outlet.producesJava = true } } }
4. 额外注意事项
- 执行构建前,先清理旧的输出目录:运行
./gradlew clean - 确保你的Gradle版本与Xtend插件兼容,建议使用Gradle 7.x或以上版本
内容的提问来源于stack exchange,提问作者Vinod Kumar
相关产品推荐
相关产品推荐

