2013-02-19 3 views
1

Мы находимся в процессе обновления нашего приложения grails 2.0.3 до grails 2.2.0 с groovy 2 и jdk 1.7. Однако мы обнаружили, что grails 2.2.0 поставляется с protobuf-java 2.4.1, что вызывает несоответствие с банкой, которую наше приложение использует для связи с бэкэнд. Эта система использует protobuf-java 2.3.0. Таким образом, любая связь с этой системой выходит из строя.Обновление Grails 2.2.0, вызывающее несоответствие буферов протокола

Мы попытались исключить Protobuf-Java, используя тег в Excludes BuildConfig.groovy как так -

inherits("global") { excludes 'protobuf-java' } 

Мы думали, что это исключает только версию 2.4.1, что мы получили от Грааль. Однако это, кажется, исключает все версии этой банки, даже ту, которую мы получаем как транзитивную зависимость от этой банки, которую мы используем. Если мы попытаемся использовать тег исключений, а затем включить protobuf-java в качестве зависимости в нашей pom с версией 2.3.0, перезапуск приложения завершится неудачей с ошибками grails.

Мои вопросы:

  1. Есть ли способ, что я могу исключить только конкретную версию Protobuf-Java банки (т.е. 2.4.1) с использованием исключает баночку

  2. ли за исключением одного унаследованные зависимости Грааль (Protobuf ява 2.4.1 в нашем случае) и с использованием устаревшей версии целесообразной

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

ответ

0

У нас была аналогичная проблема с Grails 2.0.3 и библиотекой, которая вытягивала protobuf-java 3.4.0. Мы работали вокруг него, запустив войну вместо «запустить приложение Grails»:

$ grails -Dgrails.env=dev war && java -jar target/com.acme.app-2.3.0.war 

Класс перегрузки функции не работают хорошо с этим проектом в любом случае.

Смежные вопросы