【问题标题】:sbt-assembly won't include oracle ojdbc6.jar?sbt-assembly 不包括 oracle ojdbc6.jar?
【发布时间】:2017-05-12 00:29:54
【问题描述】:

sbt 版本 0.13.13

项目/plugins.sbt:

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

build.sbt:

libraryDependencies ++= Seq(
  "oracle" % "oracle-jdbc" % "11.2.0.4.0"
)

当我运行 sbt assembly 时,它包含了 fat jar except oracle 中的所有其他依赖项!我错过了什么?

【问题讨论】:

    标签: sbt-assembly


    【解决方案1】:

    这个问题非常模糊,但我还是会讲故事。

    原来我们的关系中的 oracle jar 已损坏(看起来它的开头有 http 标头,好像有人使用了 curl -v 并将输出通过管道传输到文件作为下载 jar 的一种方式.. .)

    有些工具比其他工具更能容忍这一事实,这掩盖了问题。 Intellij 很好。 JVM 很好。但是sbt-assembly 默默地忽略了这个问题,只是不包含类文件。只有sbt-native-packager 会为您提供方便的警告,为问题提供线索:

    warning [/tmp/app/my-app-1.0-SNAPSHOT/lib/oracle.oracle-jdbc-11.2.0.4.0.jar]: 170 extra bytes at beginning or within zipfile (attempting to process anyway)

    我可以责怪队友将损坏的 jar 和没有校验和文件上传到我们的 nexus,但最终我责怪 Oracle 的许可政策迫使你自己托管他们的 jar,其次我责怪 Sonatype 发布了一个残缺的 Nexus V3它没有用于上传工件的 UI,这会诱使人们编写脚本,并犯错误,例如使用 curl -v。吐槽一下。

    【讨论】:

      猜你喜欢
      • 2019-05-11
      • 2016-05-18
      • 2013-12-27
      • 1970-01-01
      • 2021-12-27
      • 2018-09-24
      • 2019-01-10
      • 1970-01-01
      • 2011-03-13
      相关资源
      最近更新 更多