如何用 Gradle 编译 Xtend + Java 类
How to compile Xtend + Java classes with Gradle
我尝试将包含 Java 和 Xtend 类 的项目迁移到 Gradle。不幸的是,我找不到任何实现 Xtend 部分自动编译的可能性。
我很清楚 Xtext Gradle 插件 (http://xtext.github.io/xtext-gradle-plugin/),据我所知,它与 Java 插件的编译步骤挂钩。
但是,由于缺少 Xtend 类(尚未生成...)导致的各种引用错误,CompileJava 任务无法首先完成。一般来说,合适的工作流程应该是
- 编译Java并忽略错误
- 编译 Xtend
- 再次编译Java
为了让它工作,我需要一种方法来编译 Java 并忽略错误,而不会导致任务失败,我还没有找到任何解决方案。然后我需要重新执行编译,我猜这可能需要一些其他技巧来绕过 Gradle 的最新检查机制。还是我完全错了?
正确的顺序应该是先生成Xtend 源,然后再编译一切。只需添加插件并添加新的 sourceSets 如下
plugins {
id "org.xtext.xtend" version "1.0.0"
}
apply plugin: 'org.xtext.xtend'
sourceSets {
main.xtendOutputDir = 'xtend-gen'
test.xtendOutputDir = 'test/xtend-gen'
}
构建之后应该可以工作。
我尝试将包含 Java 和 Xtend 类 的项目迁移到 Gradle。不幸的是,我找不到任何实现 Xtend 部分自动编译的可能性。
我很清楚 Xtext Gradle 插件 (http://xtext.github.io/xtext-gradle-plugin/),据我所知,它与 Java 插件的编译步骤挂钩。
但是,由于缺少 Xtend 类(尚未生成...)导致的各种引用错误,CompileJava 任务无法首先完成。一般来说,合适的工作流程应该是
- 编译Java并忽略错误
- 编译 Xtend
- 再次编译Java
为了让它工作,我需要一种方法来编译 Java 并忽略错误,而不会导致任务失败,我还没有找到任何解决方案。然后我需要重新执行编译,我猜这可能需要一些其他技巧来绕过 Gradle 的最新检查机制。还是我完全错了?
正确的顺序应该是先生成Xtend 源,然后再编译一切。只需添加插件并添加新的 sourceSets 如下
plugins {
id "org.xtext.xtend" version "1.0.0"
}
apply plugin: 'org.xtext.xtend'
sourceSets {
main.xtendOutputDir = 'xtend-gen'
test.xtendOutputDir = 'test/xtend-gen'
}
构建之后应该可以工作。