如何从Gradle`ProjectConnection`访问Java插件?

如何从Gradle`ProjectConnection`访问Java插件?,gradle,Gradle,我正试图找到源代码集。从IIUC开始,没有允许这种访问的API,但我希望我错过了一些东西。展示了如何创建一个模型,可以公开插件的内部。显示Java插件没有实现这样的模型。因此,无法通过ProjectConnection访问源代码集。请参见下面的示例代码: 我在扩展了示例,在自定义模型中添加了一个新函数以公开java.main.srcDir 运行/gradlew invocation:run进行演示。项目插件信息也不会通过工具API公开,但是您提供的spotlight链接创建了一个自定义插件来公开

我正试图找到源代码集。从IIUC开始,没有允许这种访问的API,但我希望我错过了一些东西。

展示了如何创建一个
模型,可以公开插件的内部。显示Java插件没有实现这样的模型。因此,无法通过
ProjectConnection
访问源代码集。

请参见下面的示例代码:

我在扩展了示例,在自定义模型中添加了一个新函数以公开java.main.srcDir


运行
/gradlew invocation:run
进行演示。

项目插件信息也不会通过工具API公开,但是您提供的spotlight链接创建了一个自定义插件来公开插件信息。为什么不对源代码集信息做同样的事情呢?嗯,起初我认为插件信息的公开需要由Java插件来完成,但也许不是。我正在创建的插件可能会公开Java插件的内容。查看该示例中的代码,您似乎应该能够使用自定义插件和自定义模型从项目对象中公开您关心的任何信息。如果你想让我试一试,请告诉我。我现在没有时间试一试(我刚刚添加了一个待办事项)。如果你能试一试,我将不胜感激。所以,我试着这么做,但遇到了一个问题。显然,您只能使用自定义模型传回可序列化的类,而gradle SourceSetContainer不可序列化。(您喜欢的示例将插件名称作为字符串传递)。是否有您感兴趣的特定源集属性?最好是可以用字符串表示的东西。@Noel你有机会测试一下这个btw吗?