我遇到了从我的公司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]
但这也没有奏效,原因有两个:
如何使用sxt插件将nexus作为我的存储库?
如果重要,我现在使用sbt 0.13并多次阅读sbt文档以尝试解决此问题。
答案 0 :(得分:0)
您可以添加
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
到plugins.sbt
。还要记住,每行需要用.sbt
个文件中的两个换行符分隔。