gpt4 book ai didi

scala - 如何从nexus下载sbt插件?

转载 作者:行者123 更新时间:2023-12-01 23:11:30 24 4
gpt4 key购买 nike

我在从我的 corp 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:

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

我还尝试使用 ivy 的参数向我的 .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. 我什至尝试对组织值进行硬编码,但随后 sbt 提示工件的 pom 文件与 sbt 和 scala 版本不匹配(还没有找到在 nexus 或 pom 文件中指定这些东西的方法)
  3. .[ext] 解析为 ivy 的 .xml

我如何使用 sbt 插件并将 nexus 作为我的存储库?

以防万一,我正在使用 sbt 0.13 并且现在已经多次阅读 sbt 文档以尝试解决这个问题。

最佳答案

可以添加

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

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

关于scala - 如何从nexus下载sbt插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34453545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com