2016-10-22 4 views
0

Я упомянул json4s-native 3.3.0, но он ссылается на 3.3.0-SNAPSHOT.Почему Scala ищет версию SNAPSHOT?

В моем проекте есть 3 модуля (общий, чтение и запись), каждый из которых имеет свой scala.sbt.

Перед изменением:

"org.json4s" %% "json4s-native" % Versions.Json4s % "compile",

После изменения: (Изменены все места в 3-х модулей)

"org.json4s" %% "json4s-native" % "3.3.0" % "compile",

я бегу:

sbt

clean

update

Ошибка:

[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] ::   UNRESOLVED DEPENDENCIES   :: 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] :: org.json4s#json4s-native_2.10;3.3.0-SNAPSHOT: not found 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] 
[warn] Note: Unresolved dependencies path: 
[warn]   org.json4s:json4s-native_2.10:3.3.0-SNAPSHOT 

Мои Продажи buld.sbt это:

name := "myapp-sales" 

organization in ThisBuild := "com.mycompany" 

scalaVersion in ThisBuild := "2.11.7" 

//crossScalaVersions in Thisq 
//Build := List("2.10.5", scalaVersion.value) 
//crossPaths := false 

scalacOptions in Compile in ThisBuild ++= Seq("-unchecked", "-deprecation", "-encoding", "utf8", "-language:postfixOps", "-language:implicitConVersions") 

lazy val common = Project("myapp-sales-common", file("common")) 

lazy val read = Project("myapp-sales-read", file("read")).configs(IntegrationTest).settings(Defaults.itSettings: _*).dependsOn(common, write) 

lazy val write = Project("myapp-sales-write", file("write")).configs(IntegrationTest).settings(Defaults.itSettings: _*).dependsOn(common) 


conflictWarning in ThisBuild := ConflictWarning.disable 

parallelExecution in Test in ThisBuild := false 

parallelExecution in IntegrationTest in ThisBuild := false 

javacOptions in Compile in ThisBuild ++= Seq("-source", "1.6", "-target", "1.6") 


//Remove SNAPSHOT check from the release process (for now until Squants gets a release) 
releaseProcess := releaseProcess.value.filterNot(_ == ReleaseTransformations.checkSnapshotDependencies) 

Мои чтения модуль build.sbt:

libraryDependencies ++= Seq(
    "com.mycompany"   %% "myapp-core-read"   % myappsales.CoreVersion   % "compile", // disable using the Scala version in output paths and artifacts, 
    "com.mycompany"   %% "myapp-core-write"   % myappsales.CoreVersion   % "compile", 
    "com.mycompany"   %% "myapp-registration-common" % myappsales.RegistrationVersion % "compile", 
    "com.mycompany"   %% "myapp-load-common"   % myappsales.LoadVersion   % "compile", 
    "com.mycompany"   %% "myapp-core-write-test"  % myappsales.CoreVersion   % "it, test", 
    "com.mycompany"   %% "myapp-core-test"   % myappsales.CoreVersion   % "it, test" 
) 

libraryDependencies ++= Seq(
    "com.typesafe"    % "config"        % myappsales.TypeSafeConfigVersion % "compile", 
    "org.json4s"     %% "json4s-native"       % Versions.Json4s   % "compile", 
    "io.spray"     % "spray-routing"       % Versions.Spray   % "compile", 
    "com.typesafe.akka"   %% "akka-actor"       % Versions.Akka   % "compile", 
    "com.typesafe.akka"   %% "akka-remote"       % Versions.Akka   % "compile" 
    exclude ("io.netty", "netty") 
) 

//Assemby settings 
test in assembly := {} 
assemblyShadeRules in assembly := Seq(
    ShadeRule.rename("play.api.libs.iteratee.**" -> "[email protected]") 
    .inLibrary("play" % "play-iteratees_2.10" % "2.1-RC2") 
    .inLibrary("org.reactivemongo" % "reactivemongo_2.10" % "0.8.1-SNAPSHOT"), 
    ShadeRule.rename("scala.concurrent.stm.**" -> "[email protected]") 
    .inLibrary("org.scala-stm" % "scala-stm_2.10.0" % "0.6") 
    .inLibrary("play" % "play-iteratees_2.10" % "2.1-RC2") 
) 

assemblyMergeStrategy in assembly := { 
    case "application.conf" => MergeStrategy.concat 
    case path => MergeStrategy.defaultMergeStrategy(path) 
} 

//Make assembly a publishable artifact 
artifact in (
    Compile, assembly) := { 
    val art = (artifact in (Compile, assembly)).value 
    art.copy(`classifier` = Some("assembly")) 
} 

addArtifact(artifact in (Compile, assembly), assembly) 

Почему он все еще ищет SNAPSHOT версии?

+0

Можете ли вы поделиться своим полным файлом sbt. –

+0

Где вы определили объект версий? –

+2

Если у вас есть SBT, который уже запущен, когда вы вносите изменения, вам нужно «перезагрузить» перед «обновлением». –

ответ

4

Существует довольно стандартный способ исследования таких проблем. В ваших plugins.sbt

addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.8.2") 

Тогда идите sbt dependencyBrowseGraph, это откроет ваш браузер и вас на страницу, где можно просматривать весь график ваших зависимостей, включая выселенные один. Теперь выясните, откуда приходит SNAPSHOT и избавляется от него с исключением.

+0

@ Ravi сначала перейдите в sbt, затем введите его в подсказку. Также, какую версию SBT вы используете? – flavian

+0

@Ravi запустить 'sbt update' сначала, обновить sbt до 0,13.6 как минимум – dk14

+0

Извините за мой комментарий, на самом деле, я не добавил этот плагин, поэтому у меня возникают такие проблемы. После добавления этого плагина он работает нормально. – Sun

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