Я использую IDEA 13.1.5 Ultimate Edition и SBT 0.13.5 (за Play Активатор по умолчанию конфигурации), и вот мой текущий 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) при создании lazy val myLibrary = project
линии в build.sbt
и освежающие проекта IDEA, я ожидал бы IDE создать СБТ обычную структуру каталогов в папке myLibrary
проекта, однако, он ничего не делает. Наверняка, вместо того, чтобы я создавал структуру вручную, должен существовать способ создать эту структуру каталогов по умолчанию?
Что мне здесь не хватает?
Хм, интересно - я понятия не имел, что флажок был выключен, спасибо за это! Да, IDEA теперь создает ожидаемую структуру, но даже после установки сборки на [1.0-SNAPSHOT] (https://imageshack.com/i/f0jSxdqop) я все еще нахожу старый [0.1-SNAPSHOT] (https: // imageshack.com/i/paUeIZLsp) (остатки предыдущих экспериментов) в целевой папке проекта (ссылки показывают изображения). Как мне избавиться от них и что нужно вызвать для очистки этой папки? – quantum
Нет, все равно то же самое - попробовали поставить 'ThisBuild' как на' scalaVersion', так и на 'name' Settings. Я также попытался создать файл 'build.sbt' в проекте' myLibrary', чтобы убедиться, что это переопределит версию - ничего.По какой-то причине я также вижу папку '~/.sbt/boot' с тремя различными версиями scala (2.10.2, 2.10.4, 2.11.1), хотя я ожидаю, что там будет только последний. Может ли это быть связано? – quantum
Но это правильно разрешено сейчас? Я думаю, что кэш-память разрешения имеет значение только для sbt, который, вероятно, все еще использует Scala 2.10. –