我编写了一个插件,可以根据另一种文件类型中的某些元数据生成java类。我们目前有一个内部Ant任务来执行此操作,我只是从Gradle调用Ant任务来进行转换。
然而,我想在我的插件中做的是操纵项目sourceSets来添加目标目录。如何从插件中访问项目的sourceSet?
e.g。假设元数据是我通过xjc ant任务运行的xsd(它不是,但这是类似的)。我将输出目录指定为项目的ext属性,我不想也必须将相同的值添加到sourceSet,我希望插件为我插入它,因此编译步骤将自动包含生成的代码。
由于
答案 0 :(得分:3)
插件以apply
方法传递给项目。从那里,该过程非常类似于构建脚本,例如project.apply plugin: "java"; project.sourceSets { ... }
。请注意,源集的概念是由Java(基础)插件添加的,因此您必须先应用它。