如果我想为sbt添加插件,请在addSbtPlugin()
中使用plugins.sbt
。因此,要添加gen-idea插件,我将使用以下行:
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.0")
唉,我要明确指定版本1.5.0
。如果我想在最新版本可用时使用它,该怎么办?
当我省略第三个参数时,我收到以下错误:
C:\Users\JDearing\Documents\deleteme\LearningScala>sbt gen-idea
C:\Users\JDearing\.sbt\0.13\plugins\build.sbt:1: error: type mismatch;
found : sbt.impl.GroupArtifactID
required: sbt.ModuleID
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" )
^
[error] Type error in expression
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? q
是否可以避免在addSbtPlugin()
中指定版本?
答案 0 :(得分:3)
sbt插件只是您构建的另一个库 https://github.com/sbt/sbt/blob/0.13/main/src/main/scala/sbt/Defaults.scala#L1513
对于图书馆,你有常春藤解决规则
常春藤修订版 groupID%artifactID%revision中的修订版本 不必是一个固定的版本。常春藤可以选择最新的 根据您指定的约束修改模块。代替 像“1.6.1”这样的固定版本,你指定“latest.integration”, “2.9。+”或“[1.0,)”。有关详细信息,请参阅Ivy revisions文档。
这 http://www.scala-sbt.org/release/docs/Getting-Started/Library-Dependencies.html#ivy-revisions
答案 1 :(得分:1)
tl; dr 不。没有办法让版本关闭。它是sbt.ModuleID
的一部分。
但是,您可以使用latest.integration
或latest.milestone
来避免明确指定版本。常春藤和SBT将照顾"selecting the latest version being either a milestone or a release"。
您也可以咨询my answer to a similar question about the sbt-idea plugin。