2013-02-01 154 views
5

我編造了一個sbt項目框架,我用它作爲我開發的程序的起點。SBT抱怨棄用

有一段時間我有問題,當我用這個骨架開始一個新項目時,我收到2個棄用警告。該框架不包含任何源文件,即使如此,我的build.sbt包含scalac選項「-deprecation」,在項目源中編寫不建議的代碼時可以正常工作。

警告本身看起來是這樣的:

[信息]編譯1個斯卡拉源/xxx/.../xxx/.sbt/staging/xxx/target/scala-2.9.2/sbt -0.12 /類...
[警告]有1個棄用警告;重新運行,具有-deprecation的細節
[警告]發現一個警告
[info]將1個Scala源代碼編譯爲/xxx/.../xxx/project/target/scala-2.9.2/sbt-0.12/class ...
[警告]有1個棄用警告;與-deprecation重新運行細節
[警告]一個警告發現

雖然第一個警告的原因似乎是過時名.bst文件夾的問題(所以,這個警告本身似乎不是一個在我的框架內的一個大問題)我對第二個警告有點困惑,我想問問有沒有人知道如何用「-deprecation」選項啓動自己。

只是爲了澄清和強調,這是沒有重複作爲korefn建議:

scalacOptions ++ = SEQ( 「-unchecked」, 「-deprecation」)

是已經在裏面,並且警告僅在骨骼上第一次應用sbt時發生。之後,sbt保持沉默。

也沒有錯誤,這個選項適用於我存儲在骨架中的任何源文件。

+0

dupe of http://stackoverflow.com/questions/15480347/ – fommil

回答

-1

這是重複的。 檢查解決方案scala-sbt-how-to-re-run-with-deprecationhow-to-see-all-the-warnings-in-sbt-0-11

基本上添加到build.sbt:

scalacOptions ++= Seq("-unchecked", "-deprecation","-feature") //any other option 
//you like 
+0

對不起,但正如我所提到的,這已經在裏面。但是這個scalacOptions似乎在骨架第一次啓動時並沒有得到應用。 – her

+0

您是否嘗試編譯hello world示例以查找引發的報告(棄用/功能警告)? – korefn

+0

項目骨架是源空白的,即使在首次對骨架行爲應用sbt之前放置有效的helloworlds仍然是相同的。該框架由單獨的src文件夾結構,一些git設置(.gitignore等),vim-configuration,一些本機庫和文本文件組成。否則它只包含我的sbt配置文件。 sbt-configuration處理我經常使用的所有插件。我認爲警告必須與配置文件的「編譯」過程相關,因爲它們僅在sbt首次應用於骨架時發生。 – her

6

好吧,我通過SBT組,這是我想分享收到2個可能的解決方案,因爲這可能是對他人的興趣。

解決方案1:通過SBT控制檯...

  • 重裝插件
  • 集scalacOptions ++ = SEQ( 「-unchecked」, 「-deprecation」)
  • 會話保存
  • 重新加載返回

解決方案2:在proj下的.sbt文件中再次放置行「scalacOptions ++ = Seq(」-unchecked「,」-deprecation「)」 ECT-目錄。默認是項目/插件。sbt

備註:build.sbt中的「scalacOptions ++ = Seq(」-unchecked「,」-deprecation「)會捕獲項目源的警告,但不會出現在我的原始問題中提及的sbt插件等。