Gradle:未能应用插件[id';groovy';]
当应用我自己的自定义插件(反过来应用groovy(plugin)时,它会失败,Gradle:未能应用插件[id';groovy';],gradle,groovy,robospock,Gradle,Groovy,Robospock,当应用我自己的自定义插件(反过来应用groovy(plugin)时,它会失败,未能应用插件[id'groovy'],这是由java.lang.IllegalStateException:model'tasks'已完成从org.gradle.model.internal.registry.DefaultModelRegistry.assertNotFinalized 是否无法从另一个插件应用groovy?或者我在这里错过了什么 应用我的插件的项目: buildscript { reposi
未能应用插件[id'groovy']
,这是由java.lang.IllegalStateException:model'tasks'已完成
从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的代码:
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'
}
}
堆栈跟踪:
吉特回购协议:
(此处的README.md不准确,请勿阅读…)
groovy的应用发生在afterEvaluate闭包中,这可能相关吗
如果我在失败行之前添加
p.apply插件:“eclipse”
,它不会因为eclipse而失败,因此一般来说应用插件是不被禁止的。这似乎是因为afterEvaluate
-当groovy插件的应用程序移出该闭包但仍在插件中时,它工作正常
然而,我不太清楚为什么会这样,只是事实确实如此。任何知道的人都可以自由编辑我的答案或发表评论。这将根据Gradle 2.2中Luke Daley@Gradle Core Dev的规定进行修复,请参见: