如何从nexus下载sbt插件?

时间:2015-12-24 13:27:45

标签: scala sbt nexus

我遇到了从我的公司nexus获取插件依赖项的问题。具体来说,似乎addSbtPlugin的解析器正在寻找路径中的scala版本和sbt版本,但我找不到在nexus工件上传选项中指定的方法。

我在plugins.sbt中定义了以下插件:

// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.8")

// web plugins

addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.6")
addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.0.0")

我还有以下用于存储库配置的.sbt-repositories文件:

[repositories]
  nexus1: https://nexus.somecorp.com/nexus1/content/repositories/central/content/
  nexus2: https://nexus.somecorp.com/nexus2/content/repositories/central/content/

我像这样运行:

sbt run -Dsbt.override.build.repos=true -Dsbt.repository.config=.sbt-repositories

我的所有常规库依赖项下载都很好,但是通过addSbtPlugin添加的sbt插件没有 - 它们正在寻找不存在的工件的路径(scala版本和sbt版本)。

例如:

[warn] module not found: com.typesafe.play#sbt-plugin;2.3.8
[warn] ==== nexus1: tried
[warn] https://nexus.somecorp.com/nexus1/content/repositories/central/content/com/typesafe/play/sbt-plugin_2.10_0.13/2.3.8/sbt-plugin-2.3.8.pom

不起作用,因为pom文件的正确路径应为:

https://nexus.somecorp.com/nexus1/content/repositories/central/content/com/typesafe/play/sbt-plugin_2.10_0.13/2.3.8/sbt-plugin_2.10_0.13-2.3.8.pom

我还尝试使用常春藤参数将特定的解析器添加到我的.sbt-repositories文件中:

nexus1: https://nexus.somecorp.com/nexus1/content/repositories/central/content/, [organization]/[module]_[scalaVersion]_[sbtVersion]/[revision]/[module]_[scalaVersion]_[sbtVersion]-[artifact](-[classifier]).[ext]

但这也没有奏效,原因有两个:

  1. [组织]解析为前。 com.typesafe.play不适合与nexus的com / typesafe / play
  2. 我甚至试图对组织价值进行严格编码,但后来却抱怨工件的pom文件与sbt和scala版本不匹配(没有找到在nexus中指定那些东西的方法)在pom文件中)
  3. 。[ext]解析为.xml for ivy
  4. 如何使用sxt插件将nexus作为我的存储库?

    如果重要,我现在使用sbt 0.13并多次阅读sbt文档以尝试解决此问题。

1 个答案:

答案 0 :(得分:0)

您可以添加

resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"

plugins.sbt。还要记住,每行需要用.sbt个文件中的两个换行符分隔。