我目前正在创建一个自定义的Gradle插件,其目的是将cpp插件应用于该插件所应用的项目。
一旦应用了cpp插件,我希望能够在cpp插件上设置源集,以定义源文件等的标准布局。当应用于DSL中的项目时,这当然很简单,但是似乎很困难通过基于Java的插件尝试此操作时。
这背后的目的是我希望能够拥有一个自定义插件,该插件位于我的代码库内部,允许我将插件应用到设置所有cpp源集和二进制文件/库/测试的项目我想要的设置,而无需我在代码库中拥有的所有项目(微服务)中进行设置。
到目前为止,我已经能够创建自定义插件,以便可以将其包含在另一个项目中,并且该自定义插件已将cpp插件应用于该插件,但是就配置cpp插件而言,我处于有点损失。
我当前的代码如下:
class customPlugin implements Plugin<Project> {
void apply(Project project) {
project.setBuildDir(project.getRootProject().getBuildDir())
project.getPluginManager().apply "cpp"
CppPlugin nativeComponentPlugin = project.getPlugins().getPlugin('cpp') //I can't do anything useful with this object
project.task(project.getName()) {
doLast {
println 'Project ' + project.getName()
}
}
}
然后,在另一个项目中,我调用以下命令应用该插件(该插件可以工作,但出于完整性考虑而提供)
apply plugin: org.company.projectplugins.customPlugin