Конфликт задач и плагинов в Gradle (Не удалось применить плагин [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"}"
  }
}

Я искал другие посты, и все они, кажется, упоминают задачу под названием clean(), которая не появляется в моем коде, поэтому я хотел бы знать, в чем проблема.

Большое спасибо за чтение этого поста.

1 ответ

Решение

Когда дело доходит до этого сообщения:

Настройка проекта: метод Task.leftShift(Closure) устарел и планируется удалить в Gradle 5.0. Пожалуйста, используйте Task.doLast(Action) вместо этого.

это просто предупреждение. В нем говорится, что один (возможно, более) плагин, который вы использовали, использует << который будет удален в версии 5.0 Gradle в пользу doLast, Вы не используете << прямо в вашем сценарии, и это нормально. Чтобы устранить это предупреждение, прежде всего вам нужно знать, какой плагин его использует, а затем поднять проблему на сайте плагина с просьбой об исключении устаревшего кода.

Когда дело доходит до второго сообщения, это ошибка, и в одном скрипте ничего не поделаешь. Два плагина java а также org.arquillian.spacelift объявили задачу с тем же именем (это assemble) - это конфликт. Может быть, вы можете разделить свой проект на мультимодуль?

Другие вопросы по тегам