自定义Gradle插件-共享数据插件
我开发了一个定制的Gradle插件来读取文件中的一些数据,但我想开发第二个插件来将这些数据发送到外部服务器(发送数据的插件应该取决于读取数据的插件)。我知道一个Gradle插件可以检测到第二个插件,如果应用程序中有使用。我不知道如何从一个插件到另一个插件传递或获取数据(字符串或dto)。这可能吗 插件应该以任务的形式提供读取数据逻辑:自定义Gradle插件-共享数据插件,gradle,kotlin,plugins,Gradle,Kotlin,Plugins,我开发了一个定制的Gradle插件来读取文件中的一些数据,但我想开发第二个插件来将这些数据发送到外部服务器(发送数据的插件应该取决于读取数据的插件)。我知道一个Gradle插件可以检测到第二个插件,如果应用程序中有使用。我不知道如何从一个插件到另一个插件传递或获取数据(字符串或dto)。这可能吗 插件应该以任务的形式提供读取数据逻辑:readData。然后第二个插件应该创建一个任务,如sendData 创建两个任务并彼此独立工作后,将其配置为相互依赖: tasks.named("sendData
readData
。然后第二个插件应该创建一个任务,如sendData
创建两个任务并彼此独立工作后,将其配置为相互依赖:
tasks.named("sendData") {
dependsOn(tasks.named("readData")
}
在上面的例子中,为了发送数据,需要首先执行读取部分
参考资料:您可以将所有DTO和任务等放入“基本”插件中。这个插件不向模型中添加任何任务,它只是使它们在类路径上可用,并可能向模型中添加一个任务 您的“阅读器”插件应用“基本”插件,并将“阅读器”任务添加到模型中 “publisher”插件应用“base”插件,并将“publisher”添加到模型中。这些任务将取决于模型中的任何“阅读器”任务(例如通过
tasks.withType(…)
)
注意:Gradle只会对一个项目应用一次插件。因此,如果“reader”和“publisher”应用于同一个项目,“base”插件将只应用一次
Gradle在内部使用此模式。许多插件应用“基本”插件,它添加了清理、检查和组装。所有java插件都应用“Javabase”插件,该插件将源集添加到模型中,并应用“base”插件