我有自定义语言(让我们说它是MyLang,但它可以是任何语言),我想为它制作一个插件。该插件需要
我能够创建一个带有编译任务的插件(空的),并使用@LanguageType注释一个函数,将语言名称设置为" mylang"。
我如何修改插件,以便能够使用像sourceSets {mylang {...}}这样的DSL从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) {
}
}
}