2017-05-11 37 views
0

SBT版本0.13.13sbt-assembly不包含oracle ojdbc6.jar?

项目/ plugins.sbt:

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

build.sbt:

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

当我运行sbt assembly它包括脂肪罐子所有其他依赖除了 oracle!我错过了什么?

回答

0

问题很模糊,但我会讲故事。

原来,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)

我可以责怪队友上传损坏的罐子,没有校验文件到我们的关系,但最终我责怪甲骨文为他们许可政策,迫使你自己托管他们的瓶子,其次我责怪Sonatype发布残缺的Nexus V3,没有用于上传文物的UI,这诱使人们编写脚本,并且使用curl -v来犯错误。饶舌了。