我有一种自定义语言(假设它是 MyLang,但它可以是任何语言),我想为其制作一个插件。该插件需要
- 能够识别 DSL 给定语言的源集
- 能够使用可执行文件(编译器)来编译它们
我能够创建一个带有编译任务(还为空)的插件,并使用 @LanguageType 将语言名称设置为“mylang”来注释函数。
如何修改插件,以便可以使用 DSL(如 sourceSets { mylang { ... } })从 build.gradle 文件添加源集?
如何修改构建任务才能构建源集的文件?
class MylangBuildPlugin implements Plugin<Project> {
static final String COMPILE_TASK_NAME = 'compileMylang'
void apply(Project project) {
project.getPluginManager().apply(ComponentModelBasePlugin.class);
createCompileTask(project)
}
@LanguageType
void registerLanguage(LanguageTypeBuilder<BaseLanguageSourceSet> builder) {
builder.setLanguageName("mylang");
builder.defaultImplementation(BaseLanguageSourceSet.class);
}
private void createCompileTask(Project project) {
project.task(COMPILE_TASK_NAME) {
}
}
}
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)