Java Gradle插件中的嵌套扩展

Java Gradle插件中的嵌套扩展,java,kotlin,gradle,gradle-plugin,Java,Kotlin,Gradle,Gradle Plugin,我试图在我的gradle插件中实现以下配置 音乐{ 艺术家{ artistName=“artist1” 相册{ albumName=“album1” } } 艺术家{ artistName=“artist2” 相册{ albumName=“album1” } 相册{ albumName=“album1” } } } 这就是我目前所拥有的 开放类MusicPlugin:Plugin{ 覆盖应用(项目:项目){ create(“music”,MusicPluginExtension::class.

我试图在我的gradle插件中实现以下配置

音乐{
艺术家{
artistName=“artist1”
相册{
albumName=“album1”
}
}
艺术家{
artistName=“artist2”
相册{
albumName=“album1”
}
相册{
albumName=“album1”
}
}
}
这就是我目前所拥有的

开放类MusicPlugin:Plugin{
覆盖应用(项目:项目){
create(“music”,MusicPluginExtension::class.java)
}
}
开放类MusicPluginExtension@Inject构造函数(val objectFactory:objectFactory){
val artists=objectFactory.domainObjectSet(Artist::class.java)
趣味艺术家(动作:动作){
val艺术家=艺术家(对象工厂)
执行(艺术家)
艺术家。添加(艺术家)
}
}
开放类艺术家@Inject构造函数(objectFactory:objectFactory){
变量artistName:字符串?=null
val albums=objectFactory.domainObjectSet(Album::class.java)
趣味相册(动作:动作){
val album=album()
执行(相册)
相册。添加(相册)
}
}
开放类相册(){
变量名称:字符串?=null
}
当我将插件应用到一个项目时,我能够创建闭包,但是当我尝试设置
相册的属性时失败(例如设置相册的名称)。这是我得到的错误:

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/user/git/pluginTest/build.gradle' line: 19

* What went wrong:
A problem occurred evaluating root project 'pluginTest'.
> Could not set unknown property 'albumName' for object of type com.plugin.Artist.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

CONFIGURE FAILED in 84ms

如果您在这方面有任何帮助,我们将不胜感激。

您何时收到此错误?在项目配置阶段?是的,我在项目配置阶段得到这个。无法复制。。。对我来说效果很好(实际上我删除了
@Inject
注释)。在您的情况下,如果没有它们,它会工作吗?我尝试删除
@Inject
注释,但仍然得到相同的结果
失败:生成失败,出现异常。*其中:生成文件“/Users/user/git/pluginest/Build.gradle”行:19*错误:评估根项目“pluginest”时出现问题>无法为com.plugin.Artist类型的对象设置未知属性“albumName”。*尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。使用--scan运行以获得完整的洞察力。*得到更多的帮助https://help.gradle.org  在84ms内配置失败
为什么要在
newInstance
上使用
domainObjectSet()
并将所有属性包装到
属性中??