Sbt发布 - 本地使用奇怪的repo结构

时间:2013-07-15 14:33:42

标签: playframework-2.0 sbt ivy

我将sbt发布到本地常春藤仓库(${$HOME}/.ivy2)。 然后我改变了播放配置文件的方式,该播放开始使用默认的本地常春藤回购(相同的${$HOME}/.ivy2)。但是玩没有设法找到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。我试图删除它的任何方式 - 没有任何改变。

1 个答案:

答案 0 :(得分:2)

我已经添加了Resolver.defaultLocal以恢复列表并且播放找到了我的jar。

resolvers := depResolvers :+ Resolver.defaultLocal