Добавление зависимости cloud-contracts нарушает nebula.release плагин

#spring-boot #spring-cloud-contract #netflix-nebula-plugins

#весенняя загрузка #spring-cloud-contract #netflix-nebula-плагины

Вопрос:

Я сталкиваюсь со странной ошибкой, я хочу использовать nebula.release плагин в Gradle. Я успешно добавил его обоими следующими способами:

 plugins {
    id 'nebula.release' version '6.3.5'
}
  

и

 dependencies {
    classpath 'com.netflix.nebula:nebula-release-plugin:6.3.4'
}
apply plugin: 'nebula.release'
  

Однако, несмотря ни на что, когда я добавляю следующую строку classpath для spring-cloud-contracts :

 classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:2.1.0.RELEASE"
  

Это выдает мне следующую ошибку:

 An exception occurred applying plugin request [id: 'nebula.release', version: '6.3.5']
> Failed to apply plugin [id 'nebula.release']
   > No signature of method: org.eclipse.jgit.internal.storage.file.FileRepository.getRef() is applicable for argument types: (java.lang.String) values: [HEAD]
     Possible solutions: getAt(java.lang.String), getFS(), grep(), exactRef(java.lang.String), findRef(java.lang.String), getAllRefs()
  

Я вообще не уверен, почему добавление этой зависимости нарушает так много вещей, любая помощь была бы отличной!

Комментарии:

1. Скорее всего, у вас несоответствие в версиях gradle / groovy. Какую версию gradle вы используете?

2. @MarcinGrzejszczak для меня, на самом деле, то же самое. Я использую gradle 5.1; плагин nebula.release в версии 6.3.3; и плагин spring cloud contract в версии 2.2.4.RELEASE

3. У вас есть образец, который вы могли бы загрузить?

4. @MarcinGrzejszczak sure. Воспроизведено в этом репозитории с помощью github pipelines: github.com/athlan/spring-cloud-contract-nebula-example

5. Наконец, решено. Опубликованный ответ на этот вопрос.

Ответ №1:

Попробуйте перенести ваш плагин Nebula на более позднюю версию, например, на 15.1.0.

Пример проекта:https://github.com/athlan/spring-cloud-contract-nebula-example

Подробное описание:

Spring Cloud Contract поставляет более новую версию библиотеки jgit (по сравнению с версией nebula, на которую вы ссылались), где вышеупомянутый метод устарел и в более новой версии окончательно удален.