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

时间:2017-11-14 05:49:26

标签: gradle build.gradle gradle-plugin gradle-task

我尝试使用以下命令从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"}"
  }
}

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

非常感谢你阅读这篇文章。

1 个答案:

答案 0 :(得分:0)

说到这条消息:

  

配置项目:   Task.leftShift(Closure)方法已被弃用并计划进行   在Gradle 5.0中删除。请改用Task.doLast(Action)。

这只是一个警告。它声明您应用的一个(可能更多)插件使用<<,该版本将在版本5.0的gradle中删除,以支持doLast。您没有直接在脚本中使用<<,这没关系。要消除此警告,首先您需要知道哪个插件使用它,然后在插件的网站上引发一个问题,要求弃用代码。

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