2014-10-06 3 views
1

Я использую 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 проекта, однако, он ничего не делает. Наверняка, вместо того, чтобы я создавал структуру вручную, должен существовать способ создать эту структуру каталогов по умолчанию?

Что мне здесь не хватает?

ответ

2

Вы указали только версию корневой сборки, а не вашу библиотеку. 0.1-SNAPSHOT - версия sbt по умолчанию, если не указано ни одного.

Вы либо должны создать build.sbt в своем myLibrary и указать там версию, либо если вы хотите использовать один номер глобальной версии, вы можете использовать version in ThisBuild := "1.0-SNAPSHOT".

IntelliJ предлагает возможность автоматически создавать отсутствующие папки, перейдите в «Настройки», найдите sbt и отметьте Create directories for empty content roots automatically.

+0

Хм, интересно - я понятия не имел, что флажок был выключен, спасибо за это! Да, IDEA теперь создает ожидаемую структуру, но даже после установки сборки на [1.0-SNAPSHOT] (https://imageshack.com/i/f0jSxdqop) я все еще нахожу старый [0.1-SNAPSHOT] (https: // imageshack.com/i/paUeIZLsp) (остатки предыдущих экспериментов) в целевой папке проекта (ссылки показывают изображения). Как мне избавиться от них и что нужно вызвать для очистки этой папки? – quantum

+0

Нет, все равно то же самое - попробовали поставить 'ThisBuild' как на' scalaVersion', так и на 'name' Settings. Я также попытался создать файл 'build.sbt' в проекте' myLibrary', чтобы убедиться, что это переопределит версию - ничего.По какой-то причине я также вижу папку '~/.sbt/boot' с тремя различными версиями scala (2.10.2, 2.10.4, 2.11.1), хотя я ожидаю, что там будет только последний. Может ли это быть связано? – quantum

+0

Но это правильно разрешено сейчас? Я думаю, что кэш-память разрешения имеет значение только для sbt, который, вероятно, все еще использует Scala 2.10. –

0

Я столкнулся с аналогичной проблемой. Суб-проекты не строились, и sbt не пытался найти удаленные репозитории, а обновлялся до Play 2.3.6 и Scala 2.11.1. Ранее с Play 2.2 и Scala 2.10 все работало нормально. Теперь я получаю все, что работает, поставив

scalaVersion in ThisBuild := "2.11.1" 

в корне или main build.sbt

 Смежные вопросы

  • Нет связанных вопросов^_^