1

我将带有 sbt 的 jar 发布到本地 ivy repo ( ${$HOME}/.ivy2)。然后我以这种方式更改了播放配置文件,该播放开始使用默认的本地常春藤回购(相同${$HOME}/.ivy2)。但是 play 没有找到我用 sbt 发布的 jar。我想我知道为什么会这样。

下载的所有其他依赖项都具有类似的结构

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。我试图以任何方式删除它 - 没有任何变化。

4

1 回答 1

2

我已将 Resolver.defaultLocal 添加到 resovers 列表并播放找到了我的 jar。

resolvers := depResolvers :+ Resolver.defaultLocal
于 2013-07-16T11:25:28.050 回答