. 다른 응용 프로그램은 내 라이브러리를 사용했으며 모든 것이 훌륭했습니다.나는 라이브러리를 작성하여 jar 파일로 게시했다. (lib/lang/String; Ljava/lang/Object;) V
이제 다른 응용 프로그램은 종속성을 업그레이드했습니다. 그리고 지금 그들이 달릴 때. 내 라이브러리를 호출하면 응용 프로그램이 충돌합니다. 현재 응용 프로그램은 netty 4.1.8에 의존하고있는 반면 내 라이브러리는 이전 버전을 사용하는 타사 라이브러리에 의존합니다. 이제 다른 응용 프로그램을 빌드 할 때 sbt가 내 netty 버전을 새 응용 프로그램과 함께 제거합니다. 최신 netty 버전에는 내 코드가 의존하는 메소드가 없습니다.
따라서 예외
org.jboss.netty.handler.codec.http.HttpRequest.setHeader(Ljava/lang/String;Ljava/lang/Object;)V"
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.construct(NettyAsyncHttpProvider.java:693)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.buildRequest(NettyAsyncHttpProvider.java:650)
com.ning.http.client.providers.netty.NettyConnectListener$Builder.build(NettyConnectListener.java:144)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.doConnect(NettyAsyncHttpProvider.java:1070)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.execute(NettyAsyncHttpProvider.java:935)
com.ning.http.client.AsyncHttpClient.executeRequest(AsyncHttpClient.java:499)
dispatch.HttpExecutor$class.apply(execution.scala:47)
dispatch.Http.apply(execution.scala:12)
dispatch.HttpExecutor$class.apply(execution.scala:42)
dispatch.Http.apply(execution.scala:12)
scalaxb.DispatchHttpClients$DispatchHttpClient$class.request(httpclients_dispatch.scala:21)
scalaxb.DispatchHttpClients$$anon$1.request(httpclients_dispatch.scala:6)
scalaxb.SoapClients$SoapClient$class.soapRequest(soap12.scala:41)
scalaxb.SoapClients$$anon$1.soapRequest(soap12.scala:23) scalaxb.SoapClients$SoapClient$class.requestResponse(soap12.scala:60)
scalaxb.SoapClients$$anon$1.requestResponse(soap12.scala:23)
이미 오래된 그물코에 따라 제 3 자 라이브러리 (scalaxb)의 최신 버전을 사용하고 있습니다.
내 라이브러리가 응용 프로그램의 전체 업그레이드 프로세스를 보류하고 있기 때문에 이것은 실제로 죽입니다.
이전 버전의 종속성을 음영 처리하는 것이 좋습니다. https://github.com/sbt/sbt-assembly#shading –