我将带有sbt的jar发布到本地常春藤存储库(${$HOME}/.ivy2)。然后我已经这样改变了播放配置文件,播放开始使用默认的本地常春藤存储库(相同的${$HOME}/.ivy2)。但是play没有设法找到jar,这是我用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但是我用sbt发布的jar位于
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。我已经尝试过删除它了--没有任何改变。
发布于 2013-07-16 19:25:28
我已经添加了Resolver.defaultLocal到资源列表和播放找到我的罐子。
resolvers := depResolvers :+ Resolver.defaultLocalhttps://stackoverflow.com/questions/17656770
复制相似问题