2013-02-19 1 views
1

grails 2.0.3 애플리케이션을 groovy 2 및 jdk 1.7을 사용하여 grails 2.2.0으로 업그레이드하는 중입니다. 그러나 grails 2.2.0protobuf-java 2.4.1과 함께 제공되는데, 이는 우리 애플리케이션이 백엔드와 통신하는 데 사용하는 jar와의 불일치를 일으키는 것입니다. 해당 시스템은 protobuf-java 2.3.0을 사용합니다. 따라서 해당 시스템과의 통신이 실패합니다.Grails 2.2.0에서 프로토콜 버퍼 불일치가 발생했습니다.

우리는과 같이 BuildConfig.groovy에서 제외 태그를 사용하여 protobuf - 자바를 제외한 시도 -

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

우리는 이것이 우리가 Grails의에서 가져온 유일한 버전 2.4.1을 제외 거라 생각 했어요. 그러나이 버전은이 jar의 모든 버전을 제외하는 것으로 보입니다. 심지어이 버전에서 사용하는이 jar로부터 전이 의존성을 얻는 버전까지 포함됩니다. excludes 태그를 사용하고 protobuf-java를 2.3.0 버전의 pom에 종속성으로 포함 시키려고하면 grails 오류로 인해 응용 프로그램이 다시 시작되지 않습니다.

내 질문 :

  1. 내가 제외를 사용하여 (예 : 2.4.1) protobuf - 자바 항아리의 특정 버전을 제외 할 수있는 방법이 항아리가

  2. 하나를 제외되어 Grails의의 상속 의존성 (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 

기능을 다시로드 클래스 어쨌든이 프로젝트를 잘 작동하지 않습니다.