【问题标题】:Sbt publish-local use strange repo structuresbt publish-local 使用奇怪的 repo 结构
【发布时间】:2013-07-13 11:12:15
【问题描述】:

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

【问题讨论】:

  • 有趣。我现在在 0.13.0 中遇到了同样的问题,除了 publish-local 正在创建的结构是 ~/.ivy2/local/groupId/artifactId/scalaVersion/sbtVersion/version。 Resolver.defaultLocal 没有为我解决它。
  • 呃……没关系。我的问题是,当我应该使用 addSbtPlugin 时,我试图使用 libraryDependencies 引用插件。

标签: playframework-2.0 sbt ivy


【解决方案1】:

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

resolvers := depResolvers :+ Resolver.defaultLocal

【讨论】:

    猜你喜欢
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    相关资源
    最近更新 更多