Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自定义Gradle插件-共享数据插件_Gradle_Kotlin_Plugins - Fatal编程技术网

自定义Gradle插件-共享数据插件

自定义Gradle插件-共享数据插件,gradle,kotlin,plugins,Gradle,Kotlin,Plugins,我开发了一个定制的Gradle插件来读取文件中的一些数据,但我想开发第二个插件来将这些数据发送到外部服务器(发送数据的插件应该取决于读取数据的插件)。我知道一个Gradle插件可以检测到第二个插件,如果应用程序中有使用。我不知道如何从一个插件到另一个插件传递或获取数据(字符串或dto)。这可能吗 插件应该以任务的形式提供读取数据逻辑:readData。然后第二个插件应该创建一个任务,如sendData 创建两个任务并彼此独立工作后,将其配置为相互依赖: tasks.named("sendData

我开发了一个定制的Gradle插件来读取文件中的一些数据,但我想开发第二个插件来将这些数据发送到外部服务器(发送数据的插件应该取决于读取数据的插件)。我知道一个Gradle插件可以检测到第二个插件,如果应用程序中有使用。我不知道如何从一个插件到另一个插件传递或获取数据(字符串或dto)。这可能吗

插件应该以任务的形式提供读取数据逻辑:
readData
。然后第二个插件应该创建一个任务,如
sendData

创建两个任务并彼此独立工作后,将其配置为相互依赖:

tasks.named("sendData") {
    dependsOn(tasks.named("readData")
}
在上面的例子中,为了发送数据,需要首先执行读取部分


参考资料:

您可以将所有DTO和任务等放入“基本”插件中。这个插件不向模型中添加任何任务,它只是使它们在类路径上可用,并可能向模型中添加一个任务

您的“阅读器”插件应用“基本”插件,并将“阅读器”任务添加到模型中

“publisher”插件应用“base”插件,并将“publisher”添加到模型中。这些任务将取决于模型中的任何“阅读器”任务(例如通过
tasks.withType(…)

注意:Gradle只会对一个项目应用一次插件。因此,如果“reader”和“publisher”应用于同一个项目,“base”插件将只应用一次

Gradle在内部使用此模式。许多插件应用“基本”插件,它添加了清理、检查和组装。所有java插件都应用“Javabase”插件,该插件将源集添加到模型中,并应用“base”插件