我们正在使用groovy 2和JDK1.7将我们的grails 2.0.3应用程序升级到grails 2.2.0。但是,我们发现grails 2.2.0附带了protobuf-java 2.4.1,这导致了与我们的应用程序用于与后端对话的jar不匹配。该系统使用protobuf-java 2.3.0。所以任何与系统的通讯都会失败。
我们已经尝试过使用BuildConfig.groovy中的排除标记来排除protobuf-java,就像这样-
inherits("global") { excludes 'protobuf-java' }我们认为这将只排除我们从grails获得的2.4.1版本。然而,这似乎排除了这个jar的所有版本,甚至我们从这个jar中获得的作为传递依赖项的版本。如果我们尝试使用排除标记,然后将protobuf-java作为依赖项包含在我们的pom中,版本为2.3.0,那么应用程序重新启动就会出现grails错误。
我的问题:
如果排除不是一种选择,还有其他更好的办法来解决这个问题吗?
发布于 2017-09-07 11:27:58
我们在Grails 2.0.3和一个引入protobuf 3.4.0的库中也有类似的问题。我们通过运行战争来解决这个问题,而不是“”:
$ grails -Dgrails.env=dev war && java -jar target/com.acme.app-2.3.0.war无论如何,类重新加载特性与此项目不太好用。
https://stackoverflow.com/questions/14965323
复制相似问题