Я опубликовал jar с sbt в локальном репозитории ivy (${$HOME}/.ivy2). Затем я изменил файл конфигурации воспроизведения таким образом, что воспроизведение начало использовать локальное репозиторий ivy по умолчанию (тот же ${$HOME}/.ivy2). Но play не удалось найти банку, которую я опубликовал с помощью sbt. Кажется, я выяснил, почему это произошло.
все остальные зависимости, которые загружаются в игру, имеют структуру, подобную
ivy_home/cache/group_id/artifact_id/jars/artifact_id-version.jar
e.g. /home/maxim/.ivy2/cache/com.typesafe.akka/akka-actor/jars/akka-actor-2.0.1.jar
но jar, который я опубликовал с помощью sbt, находится в
ivy_home/local/group_id/artifact_id/version/jars/artifact_id.jar
e.g. /home/maxim/.ivy2/local/com.mkotolyov.test/server-core/1.1.1-SNAPSHOT/jars/server-core.jar
Я гуглил, но не нашел, как настроить sbt для публикации со структурой «по умолчанию».
мой проект в Build.scala
lazy val core = Project(
"server-core",
file("core"),
settings = buildSettings ++ Seq(
publishTo := Some(myProxyMavenRepo),
publishMavenStyle := true,
publishArtifact in Test := false,
pomIncludeRepository := {
_ => false
},
resolvers := depResolvers,
unmanagedResourceDirectories in Compile <+= baseDirectory( _ / "src" ),
libraryDependencies ++= Seq(
config,
sprayJson,
scalatest,
prettyTime,
casbahCore, casbahCommons, casbahQuery,
mysql, squeryl, postgresql,
quartz
)
)
)
У меня есть флаг publishMavenStyle := true, но он предназначен только для обычных publish, а не для publish-local. Как ни пробовал удалять - ничего не меняется.