sbt-assembly不包含oracle ojdbc6.jar?

时间:2017-05-11 07:01:58

标签: sbt-assembly

sbt version 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时,它包含胖jar 中的所有其他依赖项,除了 oracle!我错过了什么?

1 个答案:

答案 0 :(得分:0)

这个问题非常模糊,但无论如何我都会讲述这个故事。

原来oracle jar在我们的nexus中被破坏了(看起来它在它的开头就有了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而没有校验和文件到我们的关系,但最终我责怪Oracle的许可政策迫使你自己托管他们的罐子,其次我责怪Sonatype释放残缺的Nexus V3它没有用于上传工件的UI,这会诱使人们编写脚本,并像使用curl -v一样犯错误。咆哮。