Kamon aop合并策略因异常而失败

时间:2019-05-02 15:54:01

标签: scala sbt sbt-assembly kamon merge-strategy

我正在尝试对项目进行sbt组装,但是每次调用kamon aop.xml合并策略时,都会因一个奇怪的异常而失败。

我已经从Kamon docs复制了该策略。但是每次运行程序集时,这都是我得到的例外:

[debug] Merging files...
...
...
[debug] Merging 'META-INF/aop.xml' with strategy 'aopMerge'
java.net.SocketException: Unexpected end of file from server
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:851)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:848)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1587)
    at sun.net.www.protocol.http.HttpURLConnection.access$200(HttpURLConnection.java:91)
    at sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1484)
    at sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1482)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessController.doPrivilegedWithCombiner(AccessController.java:782)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1481)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:647)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1304)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1270)
    at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:264)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1161)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1045)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:959)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327)
    at scala.xml.factory.XMLLoader$class.loadXML(XMLLoader.scala:40)
    at scala.xml.XML$.loadXML(XML.scala:57)
    at scala.xml.factory.XMLLoader$class.loadFile(XMLLoader.scala:47)
    at scala.xml.XML$.loadFile(XML.scala:57)
    at $a463d7d1464947872ad0$$anon$1$$anonfun$1.apply(build.sbt:59)
    at $a463d7d1464947872ad0$$anon$1$$anonfun$1.apply(build.sbt:57)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.Iterator$class.foreach(Iterator.scala:727)
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
    at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
    at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at $a463d7d1464947872ad0$$anon$1.apply(build.sbt:57)
    at sbtassembly.MergeStrategy.apply(MergeStrategy.scala:20)
    at sbtassembly.Assembly$.sbtassembly$Assembly$$applyStrategy$1(Assembly.scala:110)
    at sbtassembly.Assembly$$anonfun$17.apply(Assembly.scala:135)
    at sbtassembly.Assembly$$anonfun$17.apply(Assembly.scala:132)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.Iterator$class.foreach(Iterator.scala:727)
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
    at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
    at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at sbtassembly.Assembly$.applyStrategies(Assembly.scala:132)
    at sbtassembly.Assembly$.x$1$lzycompute$1(Assembly.scala:25)
    at sbtassembly.Assembly$.x$1$1(Assembly.scala:23)
    at sbtassembly.Assembly$.stratMapping$lzycompute$1(Assembly.scala:23)
    at sbtassembly.Assembly$.stratMapping$1(Assembly.scala:23)
    at sbtassembly.Assembly$.inputs$lzycompute$1(Assembly.scala:68)
    at sbtassembly.Assembly$.inputs$1(Assembly.scala:58)
    at sbtassembly.Assembly$.apply(Assembly.scala:85)
    at sbtassembly.Assembly$$anonfun$assemblyTask$1.apply(Assembly.scala:241)
    at sbtassembly.Assembly$$anonfun$assemblyTask$1.apply(Assembly.scala:238)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
    at sbt.std.Transform$$anon$4.work(System.scala:63)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.Execute.work(Execute.scala:235)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
[error] (*:assembly) java.net.SocketException: Unexpected end of file from server

在合并策略中添加prints后:

val xmls: Seq[Elem] = files.map(x => {
      print(x)
      XML.loadFile(x)
    })

这是打印的文件: target/streams/$global/assemblyOption/$global/streams/assembly/f52ec958f4d31489429d9f852ee502327f80c828_4e2dd16114d55d60681a8c020a38bec511dad620_da39a3ee5e6b4b0d3255bfef95601890afd80709/META-INF/aop.xml

然后失败了:(

这些是我使用的Kamon依赖项:

libraryDependencies ++= Seq(
  "io.kamon" %% "kamon-core" % "1.1.3",
  "io.kamon" %% "kamon-datadog" % "1.0.0",
  "io.kamon" %% "kamon-akka-2.5" % "1.1.2",
  "io.kamon" %% "kamon-system-metrics" % "1.0.0",
  "io.kamon" %% "kamon-executors" % "1.0.2",
  "io.kamon" %% "kamon-scala-future" % "1.0.0",
  "io.kamon" %% "kamon-akka-http-2.5" % "1.1.0",
  "io.kamon" %% "kamon-akka-remote-2.5" % "1.1.0",
  "io.kamon" %% "kamon-jaeger" % "1.0.2"
)

这些是配置中的属性:

sbt.version = 0.13.8

scalaVersion := "2.11.7"

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.9")

  • 尝试清除所有ivy2目录(本地和缓存)
  • 清除了所有目标目录
  • 重新安装了scala / sbt

感谢您的帮助。

0 个答案:

没有答案