我使用IDEA 13.1.5終極版和SBT 0.13.5(每播放激活默認配置),這裏是我目前build.sbt
:爲什麼sbt堅持使用0.1-SNAPSHOT作爲項目版本?
name := """my-first-app"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file("."))
.enablePlugins(PlayJava)
.aggregate(myLibrary)
.dependsOn(myLibrary)
lazy val myLibrary = (project in file("myLibrary"))
.enablePlugins(PlayJava)
scalaVersion := "2.11.1"
libraryDependencies ++= Seq(
javaJdbc,
javaEbean,
cache,
javaWs
)
libraryDependencies ++= Seq(
"net.sf.jsefa" % "jsefa" % "1.1.1.RELEASE"
)
我看到兩個問題:
1)SBT是由於某種原因試圖解決myLibrary
項目的錯誤版本 - 出於某種原因,它試圖解決0.1-SNAPSHOT
而不是什麼1.0-SNAPSHOT
版本(這是我所期望的);例如,sbt update
返回此:
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: mylibrary#mylibrary_2.11;0.1-SNAPSHOT: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[trace] Stack trace suppressed: run 'last root/*:update' for the full output.
[error] (root/*:update) sbt.ResolveException: unresolved dependency: mylibrary#mylibrary_2.11;0.1-SNAPSHOT: not found
我不明白爲什麼 - 我已經做了本地.ivy
回購緩存全文搜索,本地.m2
回購緩存,整個項目目錄,手動清除所有這些,無效IDEA緩存+重新啓動IDE,並且我仍然找不到包含0.1-SNAPSHOT
的文件的任何引用,但target/
文件夾中的文件很明顯,這意味着某些內容提供了此信息,但我無法確定它是什麼。
我也嘗試過activator clean
,然後手動刪除target/
文件夾,但我根本看不到這些信息來自哪裏。
2)在build.sbt
創建lazy val myLibrary = project
行並刷新IDEA項目時,我期望IDE在myLibrary
項目文件夾中創建sbt常規目錄結構,但是它什麼都不做。當然,必須有一種方法來創建這個默認的目錄結構,而不是我手動創建結構?
缺少什麼我在這裏?
嗯,有趣的 - 我不知道該複選框被關閉,感謝您的!是的,IDEA現在正在創建預期結構,但即使在將構建設置爲[1.0-SNAPSHOT](https://imageshack.com/i/f0jSxdqop)後,我仍然會發現舊的[0.1-SNAPSHOT](https:// (項目目標文件夾中的imageshack.com/i/paUeIZLsp)文件(我之前實驗的剩餘物)(鏈接顯示圖片)。我如何擺脫它們以及需要調用哪些文件夾來清理該文件夾? – quantum 2014-10-06 18:54:06
不,仍然一樣 - 試圖在'scalaVersion'和'name'設置上放置'ThisBuild'。我也嘗試在'myLibrary'項目中創建一個'build.sbt'文件,以查看是否會覆蓋版本 - 什麼都不是。出於某種原因,我也看到我的'〜/ .sbt/boot'文件夾有三個不同的scala版本(2.10.2,2.10.4,2.11.1),即使我期望看到最新的一個。可以連接嗎? – quantum 2014-10-06 19:13:23
但現在它能正確解析嗎?我認爲解析緩存只與sbt相關,可能仍然使用Scala 2.10。 – 2014-10-06 19:16:43