Gradle 中的任务和插件冲突(无法应用插件 [class 'org.gradle.langu...)

Task and plugin conflict in Gradle (Failed to apply plugin [class 'org.gradle.langu...)

我尝试使用以下命令 运行 来自 build.gradle 的任务:

gradle footype

但是构建失败并显示了这两条我想修复的错误消息:

> Configure project : 
The Task.leftShift(Closure) method has been deprecated and is scheduled to 
be removed in Gradle 5.0. Please use Task.doLast(Action) instead.

还有这条消息:

* What went wrong:
An exception occurred applying plugin request [id: 'java']
> Failed to apply plugin [class         
'org.gradle.language.base.plugins.LifecycleBasePlugin']
   > Declaring custom 'assemble' task when using the standard Gradle 
lifecycle plugins is not allowed.

这里是 build.gradle 文件的代码:

plugins{
  id "com.gradle.build-scan" version "1.10.2"
  id "org.arquillian.spacelift" version "1.0.0-alpha-17"
  id "java"
}

group 'k'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
  mavenCentral()
}

task fooType {
  doLast {
    def foo = "bar"
    println "$foo + foo = ${foo + "foo"}"
  }
}

我搜索了其他 posts,他们似乎都提到了一个名为 clean() 的任务,它没有出现在我的代码中,所以我想知道问题是什么。

非常感谢您阅读本文post。

当谈到这条消息时:

Configure project : The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.

这只是一个警告。它声明您应用的一个(可能更多)插件使用 <<,它将在 gradle 的 5.0 版中被删除,取而代之的是 doLast。您没有在脚本中直接使用 <<,这没关系。要消除此警告,首先您需要知道哪个插件使用它,然后在插件站点上提出问题,要求消除不推荐使用的代码。

当涉及到第二条消息时,它是一个错误,在单个构建脚本中对此无能为力。两个插件 javaorg.arquillian.spacelift 声明了一个具有相同名称的任务(它是 assemble)——这是一个冲突。也许你可以将你的项目拆分成一个多模块?