我使用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