[英]Why does sbt insist on using 0.1-SNAPSHOT for project version?
我正在使用IDEA 13.1.5 Ultimate Edition和sbt 0.13.5(每个Play Activator默认配置),这是我当前的build.sbt
:
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
存储.ivy
,本地.m2
存储.ivy
,整个项目目录进行了全文搜索,手动清除了所有文件,使IDEA缓存无效+重新启动了IDE,但我仍然无法在target/
文件夹中找不到对包含0.1-SNAPSHOT
的文件的任何引用,这显然意味着某人正在提供此信息,但我无法确定那是什么。
我也尝试过activator clean
,然后手动删除target/
文件夹,但是我根本看不到这些信息从何而来。
2)在创建的lazy val myLibrary = project
符合build.sbt
并刷新IDEA项目,我希望IDE在创建SBT传统的目录结构myLibrary
项目文件夹,但是,它什么都不做。 当然,必须有一种方法可以创建此默认目录结构,而不是由我手动创建结构吗?
我在这里想念什么?
您只指定了根版本的版本,而不是您的库。 如果未指定,则0.1-SNAPSHOT
是sbt的默认版本。
你要么必须创建一个build.sbt
你myLibrary
那里,指定版本,或者如果你想使用一个单一的全球版本号,您可以使用version in ThisBuild := "1.0-SNAPSHOT"
。
IntelliJ提供了一个选项,可以自动创建丢失的文件夹,转到“首选项”,搜索sbt
并选中“ Create directories for empty content roots automatically
。
我面临着类似的问题。 子项目没有建立,并且sbt在尝试升级到Play 2.3.6和Scala 2.11.1时无法尝试定位到远程存储库。 早期版本的Play 2.2和Scala 2.10一切正常。 现在我通过把
scalaVersion in ThisBuild := "2.11.1"
在根目录或main build.sbt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.