2017-05-11 36 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來犯錯誤。饒舌了。