在应用我自己的自定义插件时,后者又应用groovy(插件),但Failed to apply plugin [id 'groovy']
因java.lang.IllegalStateException: model 'tasks' is finalized
引发的org.gradle.model.internal.registry.DefaultModelRegistry.assertNotFinalized
导致groovy
失败
在某种程度上不可能从另一个插件中应用buildscript {
repositories {
mavenCentral()
maven {
url file( '../../maven-deploy' )
}
}
dependencies {
// will be loaded from maven-deploy, not mavenCentral().
classpath 'se.toxbee.robospock:gradle-plugin-robospock:0.1.0'
}
}
apply plugin: 'robospock'
吗?或者我在这里缺少什么?
我的插件应用的项目:
def applyGroovy( RoboSpockConfiguration cfg ) {
def p = cfg.project
if ( !p.plugins.hasPlugin( 'groovy' ) ) {
p.apply plugin: 'groovy'
}
}
应用groovy的代码:
p.apply plugin: 'eclipse'
stacktrace:http://pastebin.com/ikXJTM67
git repo:https://github.com/Centril/gradle-plugin-robospock (这里的README.md不准确,不读它......)
groovy的应用发生在afterEvaluate闭包中,这可能是相关的吗?
如果我在失败的行之前添加{{1}},它不会因为eclipse而失败,因此不会禁止应用插件。
答案 0 :(得分:0)
这似乎是由于afterEvaluate
- 当groovy插件的应用程序被移出该闭包但仍然在插件中时,它工作正常。
但是,我不确定为什么会这样,只是确实如此。任何知道的人都应该随时编辑我的答案或发表评论。